Various bug fixes and improvements to Pawn

1. 'enter' is no longer a valid location during construction.
2. Many fixes to the enter function.
3. Enter now takes a coordinate.
4. Leave now takes a coordinate.
5. Renamed update to move, to allow subclasses to implement update and
call move.
Start of a better Customer class

1. Removed lots of old code.