Added failing test for second sample.

With the existing test for sample input passing, the next test created
is a different set of sample input and expected output, resulting in a
failing test.
First test written for basic board and driven out the implementation
class.
Test for a different upper right x coordinate and implementation. 

The second test has driven the use of a constructor to define the upper
right x coordinate.
Test for y coordinate drives implementation of getter for y coordinate.
Still assuming at this point the upper right x and y coordinates are the
same.
added test for get x coordinate when x and y coordinates differ. renamed
the existing test method names for clarity.
test for get y coordinate when differing x and y coordinates +
implementation.

this drove out the correct implementation for getY and the correct
assignment of the y field in the single arg constructor.
Some minor renaming of test methods for consistency and readability.
added /bin to git ignore
exception for sqaure board construction with negative coordinate.
TDD for exception message when square board coordinate is negative.
tdd for negative x coordinate for non square board.
non-square board with negative x coordinate results in exception
message.
observing DRY by having square constructor call the non square
constructor.
exception when negative y coordinate for non square rectangular board.
setting of initial deployment - starts with assuming one ship. ship
class created.
complete initial deployment test for one ship with implementation.
extracted interface for ship and renamed implementation class. This is
in line with the DI principle.
added support for multiple initial ships.
test exception when setting a ship with negative coordinates.
Extracting out coordinates class. 

Its clear that the Board class is now validation checking coordinates in
multiple places. To keep in line with SRP and DRY, this extraction has
been decided.