MB-7413 More efficient and faster incremental updates

At any time, insert larger batches of kv pairs into the
btrees. These batches are on disk sorted files, and while
they're applied to the btrees, the next batch is prepared
in parallel (maps, conversion to binaries, sorting, etc).
This reduces index update time, slows down fragmentation
and requires less disk space.

This has a very significant positive impact if the number
of changes to apply to an index are large, such as the case
when adding a group of new partitions (active, passive of
replica) to an index.

Small/medium scale performance test descriptions follows.

Test 1:

Initially 3.2M documents, design document with 4 views (both
from evperf lucky8 tests), index was built and later more
3.2M documents were added (new 512 partitions added to the
index as active).

Initial build took:                        11m17.911s
Index file size after initial build:       380Mb

** Before this change

Incremental update took:                   75m43.575s
Index file size after incremental update:  30.0Gb

** After this change

Incremental update took:                   18m36.762s
Index file size after incremental update:  4.0Gb

Test 2:

Initially 3.2M documents (from lucky8 evperf test), design
document with a single view (emits meta.id key and null value
for each document), index was built and later more 3.2M documents
were added (new 512 partitions added to the index as active).

Initial build took:                        6m23.199s
Index file size after initial build:       134Mb

** Before this change

Incremental update took:                   21m31.615s
Index file size after incremental update:  8.6Gb

** After this change

Incremental update took:                   7m13.394s
Index file size after incremental update:  1.8Gb

Change-Id: I66fde0adeb0f7a810c125bf7cb42cdd17dd03d9d
Reviewed-on: http://review.couchbase.org/23674
Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Reviewed-by: Volker Mische <volker.mische@gmail.com>