fixed messed up coordinate map, added cursor

Fixed a bug where the logical coordinates were incorrectly mapped to
physical coordinates

Added cursor. This is the object that the user has direct control over.
Most of program flow is controlled in this class.