Reorganizing functions hacked into core and de-stupifying renderers.

Moving much of the stuff stuck into core.cljs (because "it was easiest
to do it that way at the time" *shrug*) into other namespaces where
they seem to belong better.

Also improving renderers by quite a bit. Updating them to only depend
on the fields of the renderer record, the logical object it's
rendering, and the canvas 2D context to which it's rendering.