Optimize the processing algorithm for large line values.

In the case where we have a large line integer value we should optimize
the algorithm so that we skip through all the individual 'step moves'.
To do this I've optimized it to calculate the amount it should move to
be just outside the container while preserving the interval of step
that it should be on.
Clean up Box.move function a bit.

Passing in an options object will make us less likely
to make mistakes when passing in parameters and 'toMove'
as a variable name for the amount to move the box is a
more descriptive name then 'val'.