Update prompt using a greedy match.

This is so that we only get the first occurence of the prompt
remove ampersand from last_cmd if it exists.

The ampersand doesn't appear in the pexpect output.
Catch the timeout and eof from pexpect output.

EOF gets raised sometimes even though the process is still running.
add test for killing job by number
Add test for killing multiple jobs
Fix job_no in job creation.

This fixes job listing if any adjacent job numbers are separated by more than 1.
e.g. [1,3,4]
the kill function can now kill job 0 properly
Update and add more tests for job management