static is redundant inside anon namespace
omit redundant private: and using namespace
make name and state into arrays, saving two mallocs.  intmax_t may not be int64_t.  use __attribute__((format))
use const_cast
use std::forward; omit redundant public:
use nullopt
do not assume int64_t == intmax_t
notice and throw error on failure of fcntl() for FD_CLOEXEC
thow exception if accepted socket somehow ends up as stdin/stdout/stderr
change umask only for full apps, and only if needed for log files
make deadline::remaining() optional<>
Per discussion, use "auto" where possible for task impl.  Also rename
"task::pimpl" to "task::impl" because for some reason it reads a lot better.
Also, since the class is not private, it seems fitting to remove the "p".
move task name and state to malloc'd area again for cache line reasons
Merge pull request #60 from chipdude/chip/task_ev_review

Code review changes, rebased to new master