Makes dictionary updates faster by avoiding copying of std::maps.

Conflicts:

	src/rpc/directory/read_manager.tcc
Some more avoidance of metadata copies in the directory. Needs slight rework before merging.
Implements std::move semantics for cluster_directory_metadata_t
Use std::move() in lenses
Fix for data corruption issue during sindex post construction.
A little less copying in the directory_write_manager_t
This std::move() didn't belong there.
Avoid slightly more copying, even though this doesn't have such a great impact.
Attempt at making lenses on watchables more efficient. Not sure if it works.
Attempt at a caching subview_watchable_t
Bug in previous commit fixed
More bug fixes to caching subview_watchable
Re-enabled copyless lenses
Optimization to directory_echo_mirror_t::on_change
The caching subview_watchable actually made things slower. Removed it.
Re-introduced an improved version of the caching subview_watchable_t which actually works.
Replaced C++11 lambda functions with messy explicit closures.
Merge branch 'next' into daniel_directory_efficiency
That std::move didn't really work there anymore.
Merge branch 'next' into daniel_directory_efficiency