Shut down socket on destruction.

The boost documentation isn't really clear on if this really is needed
though. Just to be safe we'll do it.
Cancel the acceptor at destruction.

The boost documentation isn't clear about if this is needed though.
Clarify destruction order.