Radical update to Pawn and PawnTest

Consolidates public interface into moves method, making it possible to hide the
up, down, left, right, etc methods. Rewrites tests to conform to
refactoring. This is a huge step toward actually implementing a method to
execute a move on the board.

This refactoring would have taken forever under strict TDD. Sometimes strict TDD isn't
the answer. As long as the requirements are represented in the tests and
coverage is 100%, that seems to be most important. For the most part, I
still feel the tests are "driving" the design.