Refactor: Split SkyDrawable from Sky (which is now a MapElement)

Continued to rework how the sky is modeled to improve SoC and clean
up the API.

Sky is now a MapElement which can be addressed and manipulated via
the DMU API. Each map has ownership of one Sky instance.

SkyDrawable is a new component used to visualize a Sky. RenderSystem
has ownership of one SkyDrawable which is presently reconfigured when
the current map changes (in WorldSystem).

Todo for later: Support multiple Skys per map (for Boom support).