Smoother player movement

Stuff that should have been in the last commit. Only send movement
events if there is at least move interval difference between each last
input read and last move time. Both checks are necessary to prevent
submitting multiple moves before hearing first move, AND to prevent
submitting additional moves in lag time between (move interval + last
input) and (move interval + last movement) which can appear glitchy
draw other trainers when they log in!

fuck yeah