Replace solving puzzle subclasses with categories

Remove the Solvable subclasses of the kakuro model
classes. These classes were used solely to store some
metadata used during the solving of these puzzles. Store
them with category properties and associated objects instead.
With this approach we no longer have to solve the problem of
copying puzzles.
Implement method for KakuroPuzzle to archive to json

Remove the Mutable category on KakuroPuzzle that makes
it add sums to its dictionary, as puzzles will no longer
be copied with their dictionaries.

However, implement a method that more completely archives
the KakuroPuzzle to json. This way KakuroPuzzle does not have
to worry about keeping its dictionary up to date with its
state. Instead, it merely generates a new dictionary when
one is needed.
Remove unused method from KakuroEditorViewController

Remove the stale code to export a puzzle to the pasteboard.
Make GridController update a puzzle instance

Make GridController create an instance of GridPuzzle
and update it as the grid is edited to keep it in sync
with the board.

This is a big change from the previous architecture, where
Puzzle's were largely immutable, and GridControllers simply
created a json dict when they were ready to be saved or solved.

Now, GridController's should have little to no json logic, and
instead manipulate a puzzle instance, and only GridPuzzle subclasses
have to worry about how to load and unload from json.