UI: small js cleanups

Random / trivial changes including extraction of some static
gfx variables into more configurable locations, various edge
case detection, and parameterization of asteroid belt entities
UI: split canvas.js into modular mixins & include in main class

Tests still pass though should be split up along module boundries
UI: cleanup canvas / 3D scene init

Splits canvas operations into maintainable modules and removes
various initialization no longer needed.

Sets up secondary scene to contain skybox, wiring it to camera
rotation but not translation to improve effect

Tests have been updated to still pass though should be split
along module lines
Add constraints.json + ruby & js loaders (work in progress)

Begining of mechanism to generate constrained physical properties
of entities such as location and size and to automatically map
those to constrained rendering size domain

Preliminary data set added, though majority of points need to be
flushed out. Loading mechanisms added to ruby & js, though need
to be used in app / examples & tests need to be written