Lazy faction assignment

The assignment of factions when generating Sectors is a source of a lot of trouble, since Sectors are also generated in contexts where faction assignment is not allowed (i.e. when creating factions). This PR side-steps the problem by

1. Properly encapsulating ```Sector::System``` to control access to the faction
2. Lazy-assigning a faction to the ```Sector::System``` when it is first retrieved by ```Sector::System::GetFaction()```