Refactoring HorizontalMoveRule to pull out some common code.
Cleaning up formatting on some code.
Adding vertical move rule.
Implemented DirectionalMoveRule and CollectionMoveRule.

With these two objects, was able to get rid of HorizontalMoveRule and
VerticalMoveRule since those behaviors can be composed from the more
basic DirectionalMoveRule. Also now have a diagonal move rule.
Creating all rules in factory after injection.
Starting to bind commands to signals.
GameStartupCommand now uses GameConfig for number of rows and cols.
Refactoring PlacePieceCommand to be easy to understand

Following Uncle Bob's advice of extract 'til you drop.
Created BoardViewMediator and modified how it will communicate with model.
Created TestableSignal as a shim to allow testing of Signal usage.
Adding Destroy to IGameObject and GameObjectWrapper.
Updating how board view is initialized.
Implementing BoardView methods.