API simplification

This is a fairly significant API simplification. Unfortunately, there are a few backward incompatible changes that I'll outline here to help with upgrading. If you're having trouble, please file a ticket and I'll help out.

1. The word "and" was stricken from all initializers for consistency and brevity.
2. The cellIdentifierKeyPath option was removed from TLIndexPathDataModel. The property still exists on TLIndexPathItem and is honored by TLTableViewController and TLCollectionViewController.
3. The number of TLIndexPathDataModel initializers has been reduced to three. The ones that were specific to using TLIndexPathItem were removed because the need for them was factored out of the implementation. And the ones with cellIdentifierKeyPath were removed.
4. The TLTableViewDelegateImpl and TLCollectionViewDelegateImpl classes were removed. Nice design pattern, but including them was causing more confusion than they were worth.

Also, the item identification rules were improved in a couple of meaningful ways:
1. Each rule is tried in turn until an identifier is found. This makes it possible to have different types of data in the data model at once. For example, NSManagedObjects can co-exist with other objects in the data model.
2. As a last resort, the item's memory address is used. Previously, the last resort was to use the item itself. Now, this is only done if the item implements the NSCopying protocol.
Merge branch 'master' of https://github.com/wtmoose/TLIndexPathTools