Remove DocumentWrapper

- proxies take care of value conversion. this might be less flexible
  but is also more transparent and possibly less error-prone
- TextIndexerCon restricts DocTable values to Document now
Add traverseWithKey and Traversable instance to DocIdMap
Translate all DocTable functions to monadic functions

- adjust takes a monadic function (map does not)
  - requires Applicative instances because it makes use of the
    Data.Traversable.traverse function
    - every monad instance can be made an Applicative instance
    - see also http://www.haskell.org/haskellwiki/Functor-Applicative-Monad_Proposal
Change Delete parameter from 'Set URI' to a single 'URI'

Delete will be optimized to BatchDelete.
Both are part of the same Datatype. An intermediary type might be
necessary to ensure that Delete never occurs in a Command that will be
evaluated on type-level, e.g.
  - optimizeCmd :: Command -> ExecCommand
  - execCmd :: ExecCommand -> CM CmdResult
Cleanup
Remove transformers dependency (no need for two transformer libs)