Merge pull request #20 from DavidGinzberg/Solver-Implement

Implemented checker and more tests
Fixed unit test message typos

Two unit tests for getBlock had incorrect message text (saying they were
testing getRow). Fixed both of these to reflect the actual behavior of
the test.
Added multiple rule tests

#21: Added tests for the following rules (rules to be implemented):
- ruleIsNineByNine
- Checks that dimensions of puzzle are 9x9
- ruleOnlyNumbersOneThroughNine
- Checks that no numbers other than [1-9] are present
- ruleRowsHaveOneThroughNine
- Checks that every row has all digits in [1-9] at least once
- ruleColsHaveOneThroughNine
- Checks that every column has all digits in [1-9] at least once
- ruleNoDuplicatesInRow
- Checks that no row has duplicate numbers (empty space exempted)
- ruleNoDuplicatesInColumn
- Checks that no column has duplicate numbers (empty space exempted)
Added rule declarations

#21: Added declarations of each rule to core.js. Currently all rules
just return `true`. This at least allows the tests to run (and fail)
without dying.
Reorganizing: Created separate module for rule tests

Created a separate module for testing rules, defining puzzles in `setup`
callback and giving each rule a separate test. This should make it easer
to view, write, and debug rule tests in the future.
Added puzzles and messages for tests

Added a few more puzzles that are not 9x9 to test certain edge cases.
Also adjusted syntax on all tests to make copying easier and reduce code
duplication. Added messages to tests that were missing them, and a few
more tests where appropriate.
Merge pull request #22 from DavidGinzberg/tests

Tests enhancements for Rules functionality. Lays the groundwork for #21