Static shadow mapping

A shadow map can be manually definied and rendered for a light, Layer
and Attachment objects can now have a size specified for offscreen
rendering, to allow renders for shadow maps.

Shadow maps and passes must be manually defined in this commit, this
will soon change to a more dynamic model.