Changed GameState changing and initialization.

Every GameState is now initialized through a virtual Initialize method.
This happens after the state has been constructed and it has been given
an allocator, the game cache and renderer.

A minor edit to the bacter shader: the phase of the animation depends on
the position. This should be changed to a per bacter phase shift uniform.