[RocksJava] Support Snapshots

Summary:
Snapshots integration into RocksJava. Added support for the following functionalities:

- getSnapshot
- releaseSnapshot
- ReadOptions support to set a Snapshot
- ReadOptions support to retrieve Snapshot
- SnapshotTest

Test Plan:
make rocksdbjava
make jtest

Differential Revision: https://reviews.facebook.net/D24801
Integrated changes due to review bei ankgup87
dynamic inplace_update options

Summary:
Make inplace_update_support and inplace_update_num_locks dynamic.
inplace_callback becomes immutable
We are almost free of references to cfd->options() in db_impl

Test Plan: unit test

Reviewers: igor, yhchiang, rven, sdong

Reviewed By: sdong

Subscribers: leveldb

Differential Revision: https://reviews.facebook.net/D25293
db_stress for dynamic options

Summary: Allow SetOptions() during db_stress test

Test Plan: make crash_test

Reviewers: sdong, yhchiang, rven, igor

Reviewed By: igor

Subscribers: leveldb

Differential Revision: https://reviews.facebook.net/D25497
RocksJava Fix after MutableCFOptions change.
Merge pull request #367 from fyrz/FixBrokenJavaBuild

RocksJava Fix after MutableCFOptions change. (relates to f184198)
Deprecate AtomicPointer

Summary: RocksDB already depends on C++11, so we might as well all the goodness that C++11 provides. This means that we don't need AtomicPointer anymore. The less things in port/, the easier it will be to port to other platforms.

Test Plan: make check + careful visual review verifying that NoBarried got memory_order_relaxed, while Acquire/Release methods got memory_order_acquire and memory_order_release

Reviewers: rven, yhchiang, ljin, sdong

Reviewed By: ljin

Subscribers: leveldb

Differential Revision: https://reviews.facebook.net/D27543
Merge pull request #351 from fyrz/RocksJava_Snapshot_Support

[RocksJava] Support Snapshots
[RocksJava] Options Refactoring 3.6

Summary:
Preparational pull request. The main point about these changes is
to enable RocksJava in a next step to provide custom ColumnFamilyOptions.
DBOptions and ColumnFamilyOptions are now available as well as Interfaces
which describe those methods.

Methods in interfaces and class definitions of DBOptions and ColumnFamilyOptions
are ordered according to C++ implementation.

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

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

A new test was introduced which includes some basic testing of
ColumnFamilyOptions and DBOptions.

Note: The changes are fully downwards compatible.

Test Plan:
make rocksdbjava
make jtest

Differential Revision: https://reviews.facebook.net/D25203
[RocksJava] Update Options to 3.6.1

- disableDataSync JavaDoc aligned with current implementation
- targetFileSize is now long