Tests and persistency

Well, kinda. I added 2 utility functions to allow saving and loading,
but what they do is turn the board into a string, and a string into the
board. So, they don't *actually* persist, but it allows me to do various
other things really easily. For example, saving the board in the url,
cookie or html5 storage. I'll get to that.

Also, added tests for these utility functions, and updated the
controller tests (kinda).
URL board

Supports putting in a board via the url. Format is simple:

http://url.com/app/#/sudoku/string

The string takes the format of 123434...23423.12 etc. 81 characters
being each cell's value (or . for an empty cell) starting from 0, 0 and
going through the 2d array, row major.