Galaxy [2/4]: FactionsDatabase as part of Galaxy

**Depends on #2890, will be rebased and merged afterwards**

This PR is the second in my Galaxy series:
- Untangles ```CustomSystems``` and ```Factions``` a bit. ```CustomSystems``` are now initialized first (delaying faction assignment) the factions are loaded (and the missing ones assigned to the ```CustomSystems```. That way, home sectors are always properly available when generating factions.
- Puts all the static ```Faction``` stuff in their own ```FactionsDatabase``` class and puts the database object into the ```Galaxy```