Galaxy customization

Okay, I couldn't resist, but this *really* is a small refactoring and the last on my list for galaxy.

It moves control over a few galaxy customization points to the ```GalaxyGenerator```:

1. Factor out the code how sector density is calculated into a sub-class of ```Galaxy```, so that ```Galaxy``` is generic. Which sub-class is initiated is under the control of ```GalaxyGenerator``` (okay there is only one, but you get the point ;)). The file to be used is passed as an argument.

2. The base directory to be used for factions is passed as a parameter to the ```FactionsDatabase``` as an argument instead of being hard-coded there.

3. The same is true for ```CustomSystemsDatabase```.

This now allows us to have different galaxy density maps (or even algorithms), factions and custom systems for different galaxy generators. Due to the versioning support in ```GalaxyGenerator``` this might save us some savegame bumps in future.