A couple of fixes for compiler warnings

I'm not sure how to split these into two pull requests, but I think they're not too questionable changes. :)

The first fixes compiler warnings [-Wc++-compat, -Wgnu] about empty structs. This is regarding the structs for accessing the attribute, relationship and fetched property keys.

The second is another compiler fix [-Woverriding-method-mismatch] for when you have a subentity. To show a basic example, I will revert to CS OO Programming 101. ;)

If you have an entity of Furniture, and a subentity of Chair, then the objectID classes are FurnitureID and ChairID. Except, both are subclasses of NSManagedObjectID. My change just makes ChairID a subclass of FurnitureID. You can probably see this more concisely, with less babble in the diff!