Fix typo on KakuroEditor width field
Make KakuroCellState names more descriptive

Make the names of KakuroCellStates more descriptive, to
prevent name conflicts.
Store all sets in single array on Puzzle

Instead of having separate arrays for vertical and horizontal
answer sets, store all answer sets in a single array. Keep
track of direction with a horizontal BOOL on AnswerCellSet.
This property also allows AnswerCellSet to implement a sum
getter.
Correct typo in Puzzle's cell type key
Implement a puzzle solver in KakuroCore

Implement a puzzle solver in KakuroCore. The puzzle
solver fills in solutions on a solvable subclass
of Puzzle, leaving the original Puzzle unmodified.
The solution is derived by checking which valid
combinations could exist of sets, as well as comparing
the differences in cumulative values of different sets of cells.
This algorithm is temporary, and will be improved in later
commits.

Create solvable subclasses of the puzzle model. Make
Puzzle instantiate some classes with getters, allowing
Puzzle subclasses to override and inject their own objects.
Make KakuroEditor export to pasteboard

Instead of displaying an alert, simply copy the puzzle string
to the pasteboard when exporting.
Add solve button to Kakuro Editor

Add a button to allow a user to solve the currently displayed
puzzle in the Kakuro Editor