Add 'unionWithConv' to index type class for more efficient insert

- inserts in ComprOccPrefixTree are more efficient since they create
  a new uncompressed StringMap and merge with 'unionWithConv' which
  saves an extra 'compressOcc' and 'decompressOcc' call
  (technically those calls will still be made but handled by the
  Occurrences instance which uses 'id' in those functions)
Add unionWithConv instance implementations

- InvertedIndex is causing problems because of the unused v type
Change 'Index.insert' to 'batchInsert' which takes a (key,value) list

This is more efficient for words that occur frequently within a doc
Fix bug in Compression.*.Smart modules
Removed conditional compilation in Occurrences.Compression.Snappy

Already in Codec.Compression.Snappy.Lazy.Smart
batch-insert is not restricted to a single document at a time anymore

- added 'BatchInsert' command to Interpreter (internal)
  - multiple Insert commands are optimized to one BatchInsert command