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.