worker: Fixed dead lock
socket: Set SO_NOSIGPIPE socket option on non linux systems
logging: Added timestamps if std::put_time is available
Added simple garbage collection

For the asynchronous uwsgi thrift implementation a delayed cleanup
approach is needed because the io task might be finished before a
thrift handler (in case of a timeout on the client side). This was
solved by adding some local locking to the thrift processor.

The garbage collection approach is more generic and replaces the lock
based implementation. It introduces a new remove_task interface to the
dispatcher and a timer_task based cleanup_task. A disposable interface
has been added to allow io tasks (and other tasks too) to control the
cleanup flow and delay it if needed. The dispacter will create a
cleanup_task if immediate cleanup is not possible.
exec: Moved implemtnation from header into cpp file
http_sender: Added missing header
test_http_sender: Use a predicate to wait
test_exec: Added missing header