Return AMQP_STATUS_OK from amqp_handle_input
Return error code from amqp_socket_open()
amqp_simple_wait_method should not abort()

The amqp_simple_wait_method should not call abort(), instead close the
underlying socket, then return AMQP_STATUS_WRONG_METHOD. This is still
rather heavy-handed for a public API, however, its a lot better than
killing the entire application
amqp_*_socket_send() error handling improvements
amqp_*_socket_writev() error-handling improvements

A lot of extra code was needed to effectively ignore SIGPIPE errors on
different platforms
amqp_*_socket_recv() error handling improvements
Migrate OS-socket funcs to amqp_socket.[ch]

Doing this for code clarity, as its easier to see what the issues are
when you have all implementations in one file