Fixed bug where the speed of movement changed w/framerate

Velocities were in units of pixels/frame, which worked fine on a
fast computer since the frame rate is capped, but would cause everything
to move slowly if run on a computer that couldn't maintain 120 fps. Now
velocity is still in pixels/frame, but when an object is being moved the
number of time that has passed since it last moved is divided by the frame rate
and it is moved by it's pixels/frame velocity multiplied by that number or 1, whichever
is greater.
Added javadoc comment to move method
Reorganized and refactored. Added range to attacks.

Moved several objects that hold global state for the game to a
single package called 'state' instead of having them scattered
throughout the code. Removed the AreaMap import/export code
fromt he AreaMap companion object to the JsonMapper class.

Added to values to the attack class, targetRange and effectRange,
which will specify the area in which an attack can be used and is effective
respectively.