Reimplementing Core Data

The code here reimplements `HKUser` to be Core Data backed, it also adds the `HKManagedObject` and `HKRemoteManagedObject` classes back in to the project. These aren't documented yet, I'm working on documenting the entire project in a separate branch which I'll open a pull request for when it's ready.