Testcases: - [x] trace01.txt - Properly terminate on EOF. - [x] trace02.txt - Process builtin quit command. - [x] trace03.txt - Run a foreground job. - [ ] trace04.txt - Run a background job. - [ ] trace05.txt - Process jobs builtin command. - [ ] trace06.txt - Forward SIGINT to foreground job. - [ ] trace07.txt - Forward SIGINT only to foreground job. - [ ] trace08.txt - Forward SIGTSTP only to foreground job. - [ ] trace09.txt - Process bg builtin command - [ ] trace10.txt - Process fg builtin command. - [ ] trace11.txt - Forward SIGINT to every process in foreground process group - [ ] trace12.txt - Forward SIGTSTP to every process in foreground process group - [ ] trace13.txt - Restart every stopped process in process group - [ ] trace14.txt - Simple error handling - [ ] trace15.txt - Putting it all together