[Compaction] Make RocksDB background Compaction pluggable.

Summary:
Make RocksDB background Compaction pluggable by Compactor and CompactorFactory.
Developers can simply set options.compaction_style = kCompactionStyleCustom
and options.compactor_factory.

This diff also include a test in utilities/compactor/compactor_test.cc,
which also contains a sample custom background compactor.

Test Plan:
make compactor_test
./compactor_test

Reviewers: igor, ljin, sdong, dhruba

Subscribers: leveldb

Differential Revision: https://reviews.facebook.net/D23421