Factory improvement

- When creating a gameobject via the factory's you have immediate acces
to all of the properties. E.g. UnitGameObject.UnitGame.Cost etc. Before
you would get null pointer exceptions.
- Changed the BuildingGameObject, UnitGameObject, EnvironmentGameObject
and Tile to use Awake() instead of Start().