Quick commit before I make a mess.
Refactor Board, Controller, View into interfaces.

+ Extract methods from Board, Controller, View into
  interfaces.
+ Refactor Board and Row to allow boards of arbitrary
  size.
+ Fix mock objects — some tests were testing mocks.