Remove unused PipelineFactory
API refactoring & settings

* New GameSettings singleton
* New GameInterface class for stuff that handles game data
* Made most of the client package-private (any exposure should be done
by an actual deliberately designed API)
Added GameInterface