Merge pull request #8 from breese/handshake

Workaround for std::array detection in asio
Added socket connectivity states.
Forward socket::async_connect to multiplexer.
Better disambiguation between udp::socket and crux::socket