Add support for rendering Obstructions

Also, I've moved to using the Swing Timer to deal with the
main loop, since this prevents tearing in the rendering:
http://stackoverflow.com/questions/2114455/skipping-and-tearing-in-java-animation

Also, added a new method to the MapStub class which allows
us to get all the obstructions that intersect a specified
rectangle in the world