Added handle Interupt and SIGTERM and added wait for process to finish a...

...fter we've killed it

Possible solution for issue #29 

I settled with a solution which first tries to send an interrupt (simulating ctrl+c) and then hard kill after 3 seconds. Should work in all cases even if the app running is hanged. 
This makes sure our application has the time to close database connetions or whatever need to be done during shutdown. 

I have NOT run the tests on windows. I do not have access to any computers running windows. 
But both Process.Kill and Process.Signal(os.Interrupt) is supported on windows so nothing should break.