More work on movement

Trying to make sure the player only stops on 32-aligned boundaries, so
as to ensure it can always turn a corner if need be.  The current
implementation (which involves rounding the x and y to int) means the
player moves faster Up and Left then Down and Right.  Shall have to fix
that.