[RocksJava] Support for stored snapshots

Summary:
RocksDB supports two ways of saving snapshots. In
memory and on disk. The later was added with this
pull request to RocksJava.

Test Plan:

Reviewers:

Subscribers:
[RocksJava] Sigsegv fix for MergerOperatorByName
[RocksJava] Incoroporated changes for D29013
[RocksJava] Addressed comments in D28971
Add test for upper bounds on iterators using C interface.
Replace log2 by implementing Log2 in options_builder

Summary:
log2 function is only used in options_builder, and this function
is not available under certain platform such as android.
This patch implements Log2 by log(n) / log(2).

Test Plan:
make
Fix compile error in ROCKSDB_LITE
Store upper bound `Slice` with the same lifetime as the `ReadOptions` so that we can provide a pointer to it.
Merge pull request #423 from zerebubuth/c_iterate_upper_bound

C iterate upper bound
Fix travis-build error

Summary:
Fix travis-build error
There will also be a librocksdbjni-osx.jnilib.dSYM folder on MacOSX
builds to be deleted
Do not delete Java Fatal Error Log, developers may still want these for
reference
Merge pull request #425 from adamretter/macosx-clean-fix

Mac OS X jclean fix
Block ReadOnlyDB in ROCKSDB_LITE

Summary:
db_imp_readonly.o is one of the big obj file.  If it's not a necessary
feature, we should probably block it in ROCKSDB_LITE.

    1322704 Nov 24 16:55 db/db_impl_readonly.o

Test Plan:
make shared_lib -j32
make ROCKSDB_LITE shared_lib -j32

Reviewers: ljin, igor

Reviewed By: igor

Subscribers: dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D29583
Merge pull request #401 from fyrz/RocksJava-Sigsegv-MergeOperatorName

[RocksJava] Fixes in MergeOperatorByName
Merge pull request #398 from fyrz/RocksJava-CreateCheckPoint

[RocksJava] Support for stored snapshots