Fixing index writes from batch updates.

Essentially, a batch will call the postDelete/Put hooks for each put/delete
in the batch with the same WAL. Given the way we do the indexing (all the
updates in the WAL), this lead to the index being updated for each
Put/Delete in the batch, rather than one at a time.
Fixing locking issue on the indexer.

Previously, we weren't releasing the LogRoll lock the correct number of times.
Even if the batch is completed, we need to release the roll-lock for each put/delete.
Batching index updates by table on write

Previously, each index mutation was sent as part of a single batch
to the target table, leading to a lot of opened and closed writes.
Now we do all the updates to a table at once, leading to much
better batching efficiency, etc.
Switching internal memstore to no use MemSlab.

Using the memslab causes an the KV to be array copied to the internal slab,
an unnecessary expenditure b/c we can just reuse the existing SLAB (and
backing array) for the KVs that we get passed.
Merge pull request #435 from jyates/index-performance

Speeding up mutable index performance