Follow movement strategy improvements

Optimizes follow movement strategy on both server side and
in js client. Now location will move into proximity of  tracked
location and use elliptical movement strategy to orbit.

Contains related helper / utility method additions and refactoring
orbit modules / helpers to be able to be leveraged here.

Also synchronize cartesian axis / plane constants between ruby
server and js clients they were previously different
Return 0 in Location#time_until_movement if step_delay exeeded

Fixes regression caused by recently reduced default step delay
w/ edge case where all locations had exceeded their step delay
during 1 iteration of the run loop resulting in a negative
time being returned and loop crashing
omega-movement-plot: generate axis range if it cannot be deduced

If any coordinate components are static the existing axis range
will be 0 and gnuplot will complain / not plot the coordinate
graph.

This generates a range around fixed values.
Tweak destroyer constraints, entity follow distance
Simplify follow movement strategy

Target-not-moving edge cases consolidated into one simpler
algorithm, location will continuously pick next point on
tracking orbit and move to it
Extract location event handling out of location loop

Now location event processing is handled in it's own
independent loop run out of the motel registry, resulting
in more consistent movement loop run times.

Resolves a long outstanding TODO which recently became a FIXME
due to smaller movement delay steps.