Large refactoring of event loop.

* Player & Map no longer impl. sprite::Updatable
* Instance of `Game` now owns a display & controller.
Pass `Game->map` reference to `Game->player`
Add collision rectangles to player class.

* We remove visibility modifiers from Rectangle & construct it directly.
* (Rust will enforce immutability & static usage b/c player
   stores collision boxes in static immutable slot.)
Collision detection impl.
Merge branch 'feature/collision-b'