treat negative timeouts as infinite

when a negative timeout is supplied, CT should not set a new timeout and instead keep the content up indefinitely. this commit also adds some utilities and documentation to improve local testrunning.