[Compaction] Improve pluggable compaction API.

Summary:
* Hide Compactor and CompactorFactory from /include directory.
* Allow CompactFiles to perform deletion compaction by setting
  output_level = kDeletionCompaction.
* Settings in CompactionOptions will now be used in CompactFiles.
* If column family name is not set in GetColumnFamilyMetaData,
  then the metadata of default column family is returned.
* Add file_count to ColumnFamilyMetaData.

Test Plan:
./listener_test
./compactor_test
export ROCKSDB_TESTS=Meta
./db_test
export ROCKSDB_TESTS=CompactFiles
./db_test

Reviewers: sdong, ljin, igor

Subscribers: MarkCallaghan, dhruba

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