Mostly working code

With exception to saveInBackground
I prefer this method in the User class since it's assigning the User a new puzzle. Also, by keeping it private and the only method that directly sets a new puzzle for the User, I can guarantee certain rep invariants (i.e. at least one of the two (shuffledWord and puzzleID) should be the empty string). I think it should keep things cleaner?