refactor to use nested datastores rather than sections
refactor class and protocol hierarchy to separate concerns

- Rather than have each concrete datasource implement custom table and collection methods, default implementations have been added in a category.
- Added initial logic for observation.
- Added initial protocol for mutation.
add demo using collection view adapter
refactor fetched section to implement current design
rename fetched datasource
lazily initialize the datasource observers
tweak observation methods
define methods for section manipulation
notify observers of fetched result changes
getting the observation chain working

- Wrap observers using weak references to prevent retain cycles.
- Move category definitions and implementation into PTLDatasource.h/m
add basic insertion to PTLArrayDatasource
nil the fetch controller delegate on dealloc
datasource no longer holds cell height, that's a delegate's problem
fix broken method forwarding
adjust observation methods

- Bring constants and method names inline with NSFetchedResultsController style.