change job api to accept dynamic keyword options instead of a fixed arg list
add support for jobs that run forever
default jobs to run forever and autostart true