Renderer refactoring - Renderables

This streamlines the creation and drawing of Renderables, dropping a lot of accumlated cruft and adding support for alternative renderable types in the future (voxels, laser zaps, range circles).

Renderables have been generalized from additional Sprite state to an interface describing "something that can draw itself", positioned using world coordinates.

I've tested that the common cases display properly, but I there may be edge cases i've missed - resulting in offset sprites or incorrect draw orders.