Introduced a boolean flag to GcLock to control defer execution
Removed unused RCU source files from directory tree
Merge branch 'master' into gclock-defer-write
Replaced rcu_dereference_sym call by plain std::atomic.
rcu_dereference_sym basically calls CMM_ACCESS_ONCE which essentially is the same macro as the ACCESS_ONCE kernel one.
This macro ensures that the compiler won't make any optimization and won't load the given value twice. std::atomic should
do the trick here.
Implemented speculative Gc. The speculative unlock version does not guarantee that once it's done, the Gc is unlocked.
Merge branch 'master' into gclock-speculative-experiment
Refactored TLS stuff
Merge branch 'master' into gclock-speculative-experiment
reduced debugging output when downloading files from s3
reduced debugging output when uploading files to s3
Disabld test_active_endpoint_not_responding due to random failures
Merge branch 'master' into gclock-speculative-experiment

Conflicts:
	gc/gc_lock.h
The gc lock TLS destructor now properly releases any held speculative locks.
added implicit conversion to bool from SQS Message class
added various functions to allow working with time periods
made Date robust to non-finite numbers
added value descriptions for dates formatted in other manners
added ability to use reflection mechanism to bind functions in the rest request bindings
added ability to start scanning on forEachObjects at an arbitrary point
Merge branch 'master' of github.com:datacratic/soa