Jbalsano/fork per tab

This should make it so that each new tab you open creates a new shell process, lets you communicate with it, and then when you close the tab the shell gets destroyed.

Can someone test this to make sure that you can
 - [x] Open multiple, independent shell tabs
 - [x] Close tabs
 - [ ] Use ps and grep, along with the process ID's output by the server, to verify that it doesn't leave shell processes hanging around