Revert "PROTON-1258: Make transport events more consistent on client and server"

This reverts commit 4a6010110296846e3c77defc0558a45d8792d3b5.

This commit crashes the cpp_mt_example_test in a release build (but not in a
debug or reldbg build which is worth investigating separtely)

The connection engine relies on the events generated by correct use of
pn_transport_t. PROTON-1258 is a reactor bug: the reactor needs to be fixed to
close the transport correctly, before unbinding it, so that it can generate the
proper close events in the proper sequence. The handler should not be involved.
diff --git a/proton-c/bindings/cpp/src/messaging_adapter.cpp b/proton-c/bindings/cpp/src/messaging_adapter.cpp
index 4d83871..e74fa4e 100644
--- a/proton-c/bindings/cpp/src/messaging_adapter.cpp
+++ b/proton-c/bindings/cpp/src/messaging_adapter.cpp
@@ -221,12 +221,10 @@
 }
 
 void messaging_adapter::on_connection_remote_open(proton_event &pe) {
-    // Generate on_transport_open event here until we find a better place
-    transport t(make_wrapper(pn_event_transport(pe.pn_event())));
-    delegate_.on_transport_open(t);
-
     pn_connection_t *conn = pn_event_connection(pe.pn_event());
     connection c(make_wrapper(conn));
+    transport t(make_wrapper(pn_event_transport(pe.pn_event())));
+    delegate_.on_transport_open(t);
     delegate_.on_connection_open(c);
     if (!is_local_open(pn_connection_state(conn)) && is_local_unititialised(pn_connection_state(conn))) {
         pn_connection_open(conn);
@@ -266,20 +264,15 @@
 }
 
 void messaging_adapter::on_transport_tail_closed(proton_event &pe) {
-    pn_transport_t *tspt = pn_event_transport(pe.pn_event());
-    transport t(make_wrapper(tspt));
-
-    // If the connection isn't open generate on_transport_open event
-    // because we didn't generate it yet and the events won't match.
     pn_connection_t *conn = pn_event_connection(pe.pn_event());
-    if (!conn || is_local_unititialised(pn_connection_state(conn))) {
-        delegate_.on_transport_open(t);
+    if (conn && is_local_open(pn_connection_state(conn))) {
+        pn_transport_t *tspt = pn_event_transport(pe.pn_event());
+        transport t(make_wrapper(tspt));
+        if (pn_condition_is_set(pn_transport_condition(tspt))) {
+            delegate_.on_transport_error(t);
+        }
+        delegate_.on_transport_close(t);
     }
-
-    if (pn_condition_is_set(pn_transport_condition(tspt))) {
-        delegate_.on_transport_error(t);
-    }
-    delegate_.on_transport_close(t);
 }
 
 }