Minor acceptor and socket_base improvements

* Changed `acceptor::async_accept` to use `async_result`
* Added error checking to `acceptor::async_accept`
* Encapsulated access to socket state