feature: Entity smooth movement between tiles

Rewrite entity movement code to be more flexible and to understand
continuous movement.  Further, it should made doing other movement modes
much easier, too.

Misc.

-insert warnings in InputManager where approrpriate
-remove InputManager.register(once=True) in favor of the callback's
 parameter when equal to InputManager.ONDOWN

Many bugs fixed.  Many more introduced.  Little documentation!

-Race condition between AreaManager.focus() and Entity._do_exit()'s
 setting of X, Y coordinates.  (Existed before, but just noticed.)

Also, code smell.

-TileModeEntity.__do_layermode() calls TileModeEntity.teleport(), while
 TileModeEntity.__do_take_exit() calls Entity._on_exit().  Why the
 change of class?