Added operator() to Puzzle class, and finished testing Puzzle's default c'tor.
Changed row and column validation for Square, and hence Puzzle classes.

Got rid of Puzzle::validateCoordinate (and validatePosition as well), and changed instead
are using checkThrowCoordinate, which checks whether a coordinate is valid and throws an
appropriately formulated std::out_of_range exception. Also introduced a convenience enum
to tell the difference between a row and a column.
Created Square::checkThrowValue() to check whether the passed value is valid, and throw an exception if not.
Tinkered with file c'tor for Puzzle class, ready to start documenting and testing.