Introduced a boolean flag to GcLock to control defer execution
Removed unused RCU source files from directory tree
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.
GcLock now has a public and private interface
added --quiet option to the launcher to avoid attaching to tmux
Zookeeper init hanging

I found 2 problems with the zookeeper_init call.

1- The behavior of a program is undefined if:
   a thread that owns a timed_mutex object calls lock(), try_lock(), try_lock_for(), or try_lock_until() on that object
2- There is a bug in the g++-4.7 Ubuntu 13.04 with the std::chrono::steady_clock that is not calculating the exact epoch time.

This commit will fix both issues, changing the timed_mutex with a conditional_variable. The behavior is still the same.
added reflection for more common structures
update the default behaviour for when no metrics logger is defined in the config. Now it doesn't print anything.
Fix empty field handling

To reproduce the bug fixed by this commit, call
logMessage("CHANNEL", "", "", "");

Expected output when splitting the string (passed into the logMessage method in the logger) into the fields:
numFields: 4
field[0]: Timestamp
field[1]: ""
field[2]: ""
field[3]: ""

But the resulting output was:
numFields: 3
field[0]: Timestamp
field[1]: ""
field[2]: "\t"
use std::isnan explicitly to disambiguate with other declarations
fixed some compilation issues with gcc 4.7
fixed future handling for gcc 4.6
actually using the compatiblity layer for future::wait_for
Merge pull request #24 from dohse/fix-empty-field-handling

Fix empty field handling
Merge branch 'master' into gclock-speculative-experiment