Use monotonic time for process state tracking

This makes sure system time changes (e.g. via ntp) doesn't result in odd assertion failures due to processes entering the running state before being started.

Lightly tested on Linux; the BSD code is untested (written based on `man clock_gettime` and FreeBSD headers).  Unfortunately I do not know how to fix it for OSX, and suspect that falling back to `time.time()` is a bad idea.

While running `tox` locally seems to pass, I do not know how much to trust it.

Fixes #281.