BlockBasedTableConfig & PlainTableConfig enhancements

Summary:
BlockBasedTableConfig
- ported Checksum
- ported IndexType

PlainTableConfig
- added missing options
- added EncodingType

Test Plan:
make rocksdbjava
make jtest

Differential Revision: https://reviews.facebook.net/D26595
Integrated review comments by ankgup87

- Added tests
- Minor code-style changes
[RocksJava] Integrate review comments from yhchiang
Merge pull request #356 from fyrz/RocksJava-TableOptions-3.6

[RocksJava] BlockBasedTableConfig & PlainTableConfig enhancements
Apply InfoLogLevel to the logs in util/db_info_dumper.cc

Summary:
* Rename util/db_info_dummper.cc to util/db_info_dumper.cc
* Apply InfoLogLevel to the logs in util/db_info_dumper.cc

Test Plan: make

Reviewers: ljin, sdong, igor

Reviewed By: igor

Subscribers: dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D27915
Check InfoLogLevel earlier in Log functions.

Summary: Check InfoLogLevel earlier in Log functions.

Test Plan: auto_roll_logger_test

Reviewers: ljin, sdong, igor

Reviewed By: igor

Subscribers: dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D27993
[RocksJava] Options Refactoring 3.6

Summary:
Options extends now two interfaces DBOptionsInterface
and ColumnFamilyOptionsInterface. There are also further
improvements to the Options bindings:

Optimize methods were ported to Java. (OptimizeForPointLookup,
OptimizeLevelCompaction, OptimizeUniversalCompaction).

To align BuiltinComparator with every other Enum it was moved to
a separate file.

Test Plan:
make rocksdbjava
make jtest
Merge with ColumnFamilies & Hardening CFHandle

Summary:
ColumnFamilyHandles face the same problem as RocksIterator previously
so used methods were also applied for ColumnFamilyHandles.

Another problem with CF was that Options passed to CFs were
always filled with default values. To enable Merge, all parts
of the database must share the same merge functionality which
is not possible using default values. So from now on every
CF will inherit from db options.

Changes to RocksDB:
- merge can now take also a cfhandle

Changes to MergeTest:
- Corrected formatting
- Included also GC tests
- Extended tests to cover CF related parts
- Corrected paths to cleanup properly within the test process
- Reduced verbosity of the test

Test Plan:
make rocksdbjava
make jtest

Subscribers: dhruba

Differential Revision: https://reviews.facebook.net/D27999
[RocksJava] Integrated code review comments

- Added TODO comments for disabled methods
[RocksJava] Review comments - reformatted MergeTest
Merge pull request #355 from fyrz/RocksJava-Options-Refactoring-3.6

[RocksJava] Options Refactoring 3.6
Merge pull request #372 from fyrz/RocksJava-CF-Merge-Hardening

[RocksJava] Merge with ColumnFamilies & Hardening CFHandle
Apply InfoLogLevel to the logs in db/db_iter.cc

Summary: Apply InfoLogLevel to the logs in db/db_iter.cc

Test Plan: make

Reviewers: igor, ljin, sdong

Reviewed By: sdong

Subscribers: dhruba, leveldb

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