Add custom Equal() to continent

Continents are equal if their IDs match. It's that simple.
Improve Parser's logging

The parser initializes the logger sooner to avoid exceptions later
on, and introduces a try/catch block for configuring the console and
parsing the orders from the engine.
Massively rework how VisibleMap works

In the old version, VisibleMap was updated using references to the
already existing regions and continents in the CompleteMap. This was
a problem since information was introduces this way that the bot did
not know officially. If the bot relied on the VisibleMap to much, it
could happen that he was producing invalid moves.

The solution to this problem is the rework how regions (and continents)
are added to the VisibleMap. The new algorithm now checks first if
the region is already visible, in which case it is simply updated. If
it does not exist, a check is performed if its continent is visible.
If this is also not the case, a new continent instance gets created,
filled with the information from the CompleteMap (id and reward), and
added to the VisibleMap.

After that, the region is added the same way: a new instance is created
and filled with the information retrieved from the CompleteMap. Its
neighbor relationships are also imported, but only the once to regions
that are also already visible. After this setup is performed, the
owner and armies are updated with the information provided by the game
engine.

This behavior is far better than the old one, as it correctly maps
the directives from the game engine to the game state.