Fix exception handling and exit with a correct code

Closes #2
Correctly create a process object when receiving information from Supervisor

Instead of swallowing psutil.NoSuchProcess errors, this checks that the
pid is 0 (which Supervisor uses to mean 'no proccess') before returning
None. Closes #1.