Use `kill(getpid(), ...)` instead of `kill(0, ...)`.
`kill(0, ...)` sends a signal to the whole process group, not just the
currently executing process. The process group may include a parent
process, for example a bash subshell spawned for a script.
* Preserve interface of std::condition_variable through "perfect
forwarding"
* Decouple SignalHandler and AtomicCondition
* Callback function for signals
* Improve readme
* Bump version to v0.2
* Fix race condition in wait_for between calling atomic load
and condition_variable::wait_for, by protecting atomic store
with same mutex as AtomicCondition::wait_for.
* Subsequently, simplify the interface by removing notify_{one,all}.
condition_varaiable::notify_all is now automatically called in
`AtomicCondition::set(val)`.