Fix #82; Implement shadows

Shadows are implemented as a global image, converted to a texture on
each frame, similar to the debug layer. This may not be ideal from a
performance standpoint.