move six game_events fcns to be methods of manager

In preparation for manager to become a non-singleton class
make the game_events::manager not a singleton class

moves all of the static, filescope variables to be member variables
of the manager
split game_events::manager code into separate files
refactor game_events::context

- Move the implementation details out of header
- Use standard C++ data structures
make game_events::pump not a singleton

Instances of this are now owned by the manager.

It would be nice to refactor this to provide all of the front-
facing methods in the manager instead of in the pump, since the
pump itself is somewhat an implementation detail. But this is
nearly the "smallest" diff change that would remove the singleton
restriction.