I'd just like to give my opinion to this.
Should we use a library or code everything ourselves?
Coding everything will take you GREAT amounts of time. If you are using Java2D, you will sooner or later find that it is just too slow in rotating, scaling, transparency and stuff. Then porting to OpenGL will cost you lots of time. A library is a nice shortcut.
But if you plan on studying computer science, a look at the underlying architecture can't be bad.
Is there anything we should do or not do if we want to port our game to Android later on?
Yeah, like 65k said, LibGDX is a good choice for porting on Android. It works nearly instantly. But using LibGDX also takes a good amount of time to learn. But its worth it.
How do we save things like world-map, evolution chains and so on? txt-files?
At first, txt-files are the way to go! Because that means, that everything will stay rapidly editable. So building a good config-reader is a good idea.
How should we "load" the map? Loading the entire map would probably be VERY performance inefficient
so how should we do phasing? Center around our character, load the current screen and update this as you move?
You will probably load the file containing the tiling information. This information can be kept in an array or any good structure that is efficient enough. Your engine can now determine which part of the map has to be drawn and read out the relevant parts of the mapTiles-structure. Then only the visible parts of the map will be drawn.
How should the "running" of the game be handled? Have a main file that calls a "Game()" and have everything run
in a "GameThread"?
Well... most likely. You will find answers in KillerGameProgramming.