Cleanup
Major changes to internals of 'InvertedIndex' and addition of proxies

- change 'OccCompression' typeclass definition  to include
  'differenceWithKeySet' for experimental instance w/ CompressedIndex
- 'InvertedIndex'
  - no longer includes key Text conversion, only responsible for
    'Occurrence' merging
  - wraps index and proxies
- add 'CachedIndex' proxy which provides a basic deletion cache
  - no option to apply/merge the deletion set yet
- add 'CompressedIndex' proxy
  - works like 'ComprPrefixTreeIndex' but is more generic
  - adds another type parameter for this to work with other proxies
- add 'TextKeyIndex' which translates from 'Text' to 'String' keys
  - includes experimental instance for compression optimization
    which requires XFlexibleInstances and XOverlappingInstances
- add merge test to Index test-suite and adjust tests
Bump StringMap dependency

required for recent changes (range queries) which only worked with the
latest version which was not yet available on hackage