Fix `MR_internalEntityName` — NSManagedObject has a private method `entityName` that returns nil by default

Seriously. What they hey, Apple?
Replace checks for `entityName` on NSManagedObject subclasses with `nameOfEntity`

`entityName` is declared on NSObject and was causing validation warnings when submitting to the App Stores.
Remove the shorthand entity name methods entirely
Make the `nameOfEntity` class method part of a protocol, not an interface
Revert to `MR_entityName` for the time being

There's more information at http://rentzsch.tumblr.com/post/82453434093/apple-claims-mogenerators-methods
Add synchronous save methods that return a success state and optional NSError

Closes #299
Closes #685
Don't dispatch save completion blocks to the main thread

This was causing UI pauses and unnecessarily blocking the main thread for people who didn't want that.

Closes #425
Save completion handlers no longer dispatch to the main thread by default. Update tests to reflect this.
Entity attribute names must begin with a lowercase letter — update the documentation to reflect this