Update close to not block on shutdown

Instead of always blocking on shutdown, close will now return after sending the go away from and allow the application to choose how to wait for shutdown to complete.  Likewise receiving a goaway frame will initiate shutdown and allow clients to wait.

Closes #24