gracefully shutting down server

fixes #13 

Here we introduce gracefully shutdown behaviour of the server. 
- process listens for `SIGINT`, `SIGTERM`, `SIGKILL`
- when one of the signals was received we delay closing of the TCP listener
- after the short delay we close the TCP listener so no new connections will be accepted
- when the listener was closed we wait for a few seconds again to let established connections finish
- exit the process with code `0`
I thought about that:
- there is some service running using this library
- there is also some kind of health-check/lb-register
- both are coupled in some way
- imagine both receive a shutdown signal 
- delaying here before closing the TCP listener will cause the health-check/lb-register to stop first
- no more connections come in since this service here is removed from the load-balancer
- now the TCP listener can safely be closed without the need of rejecting further incoming connections

Again, I would like to make this delays configurable. Then anybody can use this option to fit their own needs.