MB-33632: Use new Compaction listener API in RocksDB 5.18.3
MB-33632: Use new Compaction listener API in RocksDB 5.18.3

Previously, we created a CompactionEventListener that was called
at the beginning of a compaction to set a thread local variable to 
track any allocations/deallocations against a given bucket.

The API exposed by RocksDB has now changed; the user can add listeners
for an OnCompactionBegin function instead. Use this function instead of
the previous CompactionEventListener.

Additionally, add a listener for the OnCompactionCompleted event. We
should remove the thread local set previously to avoid tracking any
allocations or deallocations done before or after the two functions are
called. We saw that this caused an issue with flush when a bucket is
destroyed.

Change-Id: I7944177af8df1d24f18966875ba80603d66f42e9
Reviewed-on: http://review.couchbase.org/107790
Reviewed-by: Dave Rigby <a09264da4832c7ff1d3bf1608a19f4b870f93750@couchbase.com>
Tested-by: Build Bot <80754af91bfb6d1073585b046fe0a474ce868509@couchbase.com>

daverigby/kv_engine,daverigby/kv_engine,daverigby/kv_engine,daverigby/kv_engine