Allow user to specify DB path of output file of manual compaction

Summary: Add a parameter path_id to DB::CompactRange(), to indicate where the output file should be placed to.

Test Plan: add a unit test

Reviewers: yhchiang, ljin

Reviewed By: ljin

Subscribers: xjin, igor, dhruba, MarkCallaghan, leveldb

Differential Revision: https://reviews.facebook.net/D20085
Fixed some make and linking issues of RocksDBJava

Summary:
Fixed some make and linking issues of RocksDBJava. Specifically:
* Add JAVA_LDFLAGS, which does not include gflags
* rocksdbjava library now uses JAVA_LDFLAGS instead of LDFLAGS
* java/Makefile now includes build_config.mk
* rearrange make rocksdbjava workflow to ensure the library file is correctly
  included in the jar file.

Test Plan:
make rocksdbjava
make jdb_bench
java/jdb_bench.sh

Reviewers: dhruba, swapnilghike, zzbennett, rsumbaly, ankgup87

Reviewed By: ankgup87

Subscribers: leveldb

Differential Revision: https://reviews.facebook.net/D20289
[Java] Add Java support for cache sharding.

Summary:
Add setCacheNumShardBits() and cacheNumShardBits() to Options.  This allows
developers to control the number of shards for the block cache.

Test Plan:
make rocksdbjava
cd java
make db_bench
./jdb_bench.sh --cache_size=1048576 --cache_numshardbits=6

Reviewers: sdong, ljin, ankgup87

Reviewed By: ankgup87

Subscribers: leveldb

Differential Revision: https://reviews.facebook.net/D19347
Fixing memory leaks in cuckoo_table_builder_test

Summary: Fixes some memory leaks in cuckoo_builder_test.cc. This also fixed broken valgrind_check tests

Test Plan:
make valgrind_check
./cuckoo_builder_test
Currently running make check all. I shall update once it is done.

Reviewers: ljin, sdong, yhchiang, igor

Reviewed By: igor

Subscribers: leveldb

Differential Revision: https://reviews.facebook.net/D20385
Fix signed-unsigned compare error
[Compaction] Redesign RocksCompactionPicker to be the base class of the new level / universal compactions

Summary:
Redesign RocksCompactionPicker to be the base class of the new level / universal
compactions.  This redesign makes unifying level and universal compaction
more possible while giving the flexibility to level and universal compaction
to handle compaction differently in part.

Test Plan:
Include kRocksLevelCompaction and kRocksUniversalCompaction into the test
make db_test
./db_test
and all tests passed.

more tests will come up during the follow-up development.

Reviewers: sdong, ljin, igor

Subscribers: leveldb

Differential Revision: https://reviews.facebook.net/D20421
Merge branch 'master' of github.com:facebook/rocksdb into rocks-compaction