PROTON-641: fixed link cleanup on connection/session abort; made free not close automatically

git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/trunk@1620643 13f79535-47bb-0310-9956-ffa450edef68
Initial refactoring of io layers:
- Eliminate some unnecessary stuff.
- Make pn_io_layer_t a pure interface.
Remove unused io_layer function.
Simplify amqp header code; remove header_count member from pn_transport_t
Refactor the io_layer
Change tick layer callbacks so that they're not chained just called in sequence
Remove transport pointer from ssl and sasl structs
- This involved changing pn_ssl_init() API
Reorganise layer initialisation:
- Defer until first send/receive
- Move layer initialisation entirely to transport
Mostly split transport into server/client sides
WIP
WIP: A lot of server autodetection done - not fully working yet
WIP: Somewhat working server autodetect - passes tests now
- There seems to be an issue if autodetecting ssl and the
  handshake failing that ssl isn't fully destroyed.