Some map abstractions

This adds some abstractions for maps and sprites. The notable change is that there is now a randomly moving non-player sprite.