Fix unhandled exception in async HTTP server (RIPD-475)

This looks good to me.  I assume the socket->shutdown does "the right thing" based on the error_code it is passed?  It feels like this is an ASIO thing?  Thanks for the education.