CBIDXT-52 Initial Implementation for Mutation Manager

MutationManager handles messages from Indexer to manage Mutation Streams
and flush mutations from mutation queues.

Patchset 3:
- Better error handling in case of stream reader panic/error
- Improved documentation to make the contract more explicit
- Shutdown is no longer part of interface. Its changed to a message
for both Mutation Manager and Stream Reader

Patchset 4:
- Add buffered channel to mutation manager to be able to handle
multiple worker messages
- Add panic handler for mutation manager

Patchset 5:
- Minor fixes for typos
- Incorporated review comments

Change-Id: Idecbf250e4a6670f5a048ad7e1116b0ba6feeb2e
Reviewed-on: http://review.couchbase.org/36710
Reviewed-by: John Liang <johliang00@gmail.com>
Reviewed-by: Deepkaran Salooja <deepkaran.couchbase@gmail.com>
Tested-by: Deepkaran Salooja <deepkaran.couchbase@gmail.com>