Add some persistance to puzzles

Save the puzzle cell's candidates and time
when a user leaves a puzzle.
Create NSManagedObject subclasses

Create a subclass for the PuzzleState entity, and a wrapper
for the KakuroPuzzleEntity to avoid having to directly query
properties with key value encoding. KakuroPuzzleEntity gets
a wrapper instead of a subclass because its model is loaded
programmatically from the momd in the puzzles bundle.
Restart UIView animations after coming to foreground

Ensure that all UIView animations restart after the
application is put in the background and then returns
to foreground.
Only perform timed animation of select menu once

Only perform the fade in animation of the select menu
over a time (as opposed to tying the animation to scroll
location) the first time the user pans right. If the user
pans left and then right again, interpolate the animation
on scroll location.
Make puzzle select tappable before animation completes

Ensure that a user tapping a puzzle select button
will shoot off the transition - even if the puzzle
select menu hasnt fully animated in yet.
Clean up animations on AnswerCellView

Create similar properties with a category
on PopAnimatableProperty and similar animations
in a helper method on AnswerCellView, to cut down
on duplicate code.
Add an animation for invalid cell entries

Perform a wiggle animation and a fade to red
on cells when the user enters an answer that
duplicates another answer in its row/column,
or causes a set to add up to the wrong sum