* Refactor. Store delta information within Direction.

I.e., instead of Robot knowing how to increment/decrement x or y, now Direction
knows about it.
* Refactor. Put info on prev/next direction into a structure.

That info used to be coded in two methods inside Direction.
* Move moving logic from Robot to State.
* Refactor. Better naming.