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, where the entity doesn't have these the empty structs will be generated.

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!