Added ability to stop server.

I added some functionality to be able to stop a running Gin server, causing it's `Run*()` function to exit without error.

The net/http built-in server doesn't easily allow injecting a listener into the listener chain, so I had to inline some of the code from net/http to inject in the stoppableListener.

This is extremely useful in the case of unit testing, since a test suite might want to start/stop the server for test independence reasons.