implement generic process timeout/restart
improve and document timeout garbage collection
improve documentation, simplify code
improve example code
make destruction safer
improve example
merge feature/timeout_restart