Sort sprites by layer

Added in a call to sort sprites by layer so that higher layered sprites
are drawn later.

It's a fairly inefficient hack since it sorts the sprite list every
frame. If we were using Pygame-native sprites, which have this
functionality built in, this would probably go faster... so we might
want to find a way to do that even with the front end decoupled from the
back end.
Rescue Rover level 2 almost works

- Rover follows player
- Rover levels succeed when player reaches exit with Rover
- Player picks up items
- Keys unlock doors

Only thing missing is that the key should be removed from the level when
it is used.

This currently causes an error, as it happens in a loop that includes
the key.

Also changed a lot of the sprite fetching functions in the level class
to return sets.