add support for stopping server

I'm new to Go but figured I'd try to address #307 as a little exercise for learning purposes.  Here is my solution in case you can use any of it.
Should this be in it's own file. stoppable_listener.go or something?