Move GetThreadList() feature under Env.

Summary:
GetThreadList() feature depends on the thread creation and destruction, which is currently handled under Env.
This patch moves GetThreadList() feature under Env to better manage the dependency of GetThreadList() feature
on thread creation and destruction.

Renamed ThreadStatusImpl to ThreadStatusUpdater.  Add ThreadStatusUtil, which is a static class contains
utility functions for ThreadStatusUpdater.

Test Plan: run db_test, thread_list_test and db_bench and verify the life cycle of Env and ThreadStatusUpdater is properly managed.

Reviewers: igor, sdong

Reviewed By: sdong

Subscribers: ljin, dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D30057
Fix the build with -DNDEBUG.

Dike out the body of VerifyCompactionResult.  With assert() compiled out, the
loop index variable in the inner loop was unused, breaking the build when
-Werror is enabled.
add support for nested BlockBasedTableOptions in config string

Summary:
Add support to allow nested config for block-based table factory. The format looks like this:

"write_buffer_size=1024;block_based_table_factory={block_size=4k};max_write_buffer_num=2"

Test Plan: unit test

Reviewers: yhchiang, rven, igor, ljin, jonahcohen

Reviewed By: jonahcohen

Subscribers: jonahcohen, dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D29223
Merge pull request #443 from behanna/master

Fix the build with -DNDEBUG.
Fix the build on Mac OS X
Merge pull request #444 from adamretter/java-api-fix

Fix the Java API build on Mac OS X
Fix compile of compact_file_example
Clean up compile for c_simple_example
Extract the interface for a WriteBatch
Extract the interface for a RocksIterator
Tests for WriteBatchWithIndex
Start of work for implementing WriteBatchWithIndex in the Java API
Start of JNI bridge for WriteBatchWithIndex