UI: add file missing from fa65f8a9b (missile_bay.js)
UI: add construction options dialog

Now user may specify entity class, type, and id which to construct
UI: add more axis lines
Fix broken specs, suite now fully working again

Adds a few helper methods to motel to assist w/ test readability.

Also fixes small issue w/ locations event loop where invalid
value was being returned to cycle processor. Now returns nil,
using default loop interval.
Fix JS tests broken by recent commits
Add a few specs for type-based ship properties
Add spec for timestamp stat
UI: scale entities before adding to canvas

Fixes small regression where constructed entities weren't being
scaled before their gfx components were added to canvas resulting
in their misplacement in scene
UI: move ship canvas cbs / scene reload util to base entity gfx
UI: remove reload from motel callback & elsewhere

Each call to reload results in a perf hit as there will be
lingering components in gl context.

This removes reload from the motel callback & elsewhere
which improves performance when receiving location events
UI: set orbit line scale on addition to scene components

Fixes regression where this was not being set when orbit was
added after entity was added to scene (for example when station
changed movement strategy)
UI: increase ship callback distance / rotation
UI: complete ship gfx init even if no missiles/bays are present

Fixes regression caused by ship gfx init not finishing due
to missle bays not not present on certain types
UI: remove a few more uneeded calls to canvas.reload
UI: optimize canvas component rendered_in callback invocation

Previously on each render the entire scene descendant list was
iterated over and each component checked, a costly operation.

Now list of components w/ callbacks is predetermined so we
can just quickly iterate over those & invoke callbacks
UI: clear dialog commands before repopulating

Resolves long outstanding FIXME in the ui code where duplicate
commands were being added to dialog
UI: update mining vector on movement / callbacks

Removes mining vector update from update_gfx and adds helpers
to set mining target in similar way to attack target.

Uses helpers to set / clear mining target which registers movement
callback. Also removes uneeded canvas.reload call since components
array isn't modified when mining graphics are updated
UI: remove uneeded canvas.reload calls from construct/tfer cmds