First draft of .
Fix bugs in watchable_map_t. Add a new type of directory manager that uses a watchable_map_t instead of a single watchable_t.
Mostly converted reactor to use watchable_map_t instead of watchable_t, but it doesn't build yet.
watchable_map_t conversion now builds, but has bugs.
Unit tests pass now.
Merge branch 'reql_admin' into tim_map_watchable

Conflicts:
	src/clustering/administration/artificial_reql_cluster_interface.cc
	src/clustering/administration/artificial_reql_cluster_interface.hpp
	src/clustering/administration/main/serve.cc
	src/clustering/administration/metadata.cc
Make it compile on GCC.
Compile on GCC 4.6.3.
Re-introduce buffering of directory changes to hopefully improve performance.
Remove some unnecessary debug.hpp inclusions, and some unused template instantiations.
In directory_map_write_manager_t, use one coroutine per connection instead of one per message.
Check return value of key_2_to_1 everywhere.
Make is_safe_for_us_to_be_primary_helper() and is_safe_for_us_to_be_primary() more consistent in how they set return values.
Fix minor stylistic errors.
Merge branch 'tim_map_watchable' into reql_admin

Conflicts:
	src/clustering/administration/http/progress_app.cc
	src/clustering/administration/metadata.cc
	src/clustering/reactor/reactor_be_primary.cc