fixup gamestate initialization

- eliminate the "gamestate::init returns a whiteboard" hack
- store all resources used in game_events in a shared_ptr for easy
access
- add a bind function for binding the gamestate to play_controller
assets
- eliminate obsoleted functions

This fixes up commit fbcfa99c811c91538588e783dfc2d97406ab84ee