Split static & animated sprites apart.
Add map of states -> sprite refs.
Move sprite-state into player's state.
Use dynamic borrowing rules to allow `Player{}` to manage different sprites
Uses a map to more closely mirror the solution used by youtube playlist.

Moves all the motion logic [except the enums] into `player.rs`
Selects current sprite-sheet from map for Updatable/Drawable calls.

Major difference is that my updatable/drawable calls are separate traits
(Though polymorphically both Sprite & AnimatedSprite are Updatable)

In the C++ impl. he simply has a single `draw()` method.
Merge pull request #1 from drbawb/exp/ref

Exp/ref