Canvas layer abstraction library.

Provides an layer abstraction in library/layer.lua -- each layer is its own drawable and has its own coordinate system. Simplifies handling of canvas layers, but there is still more to be done.