Tweaks

I did some refactoring, plus I made the following significant changes:

- 7853dc8cf3a0ae869d8b45d80a678455d1d28e39: Always use an array as the collection, because otherwise #delete can be dangerous or not defined. (Resolves #12.)
- e949631940bed41311449894bc65d178a1e5828d: Wrap cache read/write calls in notification instrumentation for fragment read/write logging.