Move graphics constructor to more traditional `new()` method
Load bitmap from cache or fetch it from disk if it does not exist.
Trying to make `graphics` responsible for all SDL surfaces.

Not working very well.
IT WORKS!

In the end I wrapped the map's key in `Handle{}` which
I'd rather keep private but that's not how rust's visibility works.

Sprite's then grab a handle and use it to request that the
rendering engine display a cached sprite.

The idea is that if you have a `Handle` then graphics has
already loaded the requested sprite.

If you construct a `Handle` w/ an invalid ID then the renderer
will panic() as it retrieves a non-existent key.
Mark `id` as private.

This should prevent me from inadvertendly creating a handle which
is not present in `sprite_cache`
Bump FPS back down