MB-10472: Handle incremental updates properly

Currently incremental updates do de-duplication of several snapshots
in memory. With this change, there's no de-duplication needed as the
snapshots are flushed independently to disk.

Whenever there is a snapshot marker within the same partition, all
changes up to that marker are flushed to disk and the index is built.

Please note that there's still some in-memory buffering going on, a
subsequent commit will get rid of it.

Change-Id: I5fe0c07b3a8b96f276bca4ad2f23e98583967585
Reviewed-on: http://review.couchbase.org/37177
Tested-by: buildbot <build@couchbase.com>
Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>