PROTON-2138: properly parse the remote terminus properties

The coordinator terminus only has a capabilities field.  This is
different from the tranditional endpoint attach frame and must be
handled appropriately.

This closes #209
diff --git a/c/src/core/transport.c b/c/src/core/transport.c
index ee00ad2..682a635 100644
--- a/c/src/core/transport.c
+++ b/c/src/core/transport.c
@@ -1396,9 +1396,7 @@
     pn_terminus_set_dynamic(rtgt, tgt_dynamic);
   } else {
     uint64_t code = 0;
-    pn_data_clear(link->remote_target.capabilities);
-    err = pn_data_scan(args, "D.[.....D..DL[C]...]", &code,
-                       link->remote_target.capabilities);
+    err = pn_data_scan(args, "D.[.....D..DL....]", &code);
     if (err) return err;
     if (code == COORDINATOR) {
       pn_terminus_set_type(rtgt, PN_COORDINATOR);
@@ -1418,22 +1416,35 @@
   pn_data_clear(link->remote_source.filter);
   pn_data_clear(link->remote_source.outcomes);
   pn_data_clear(link->remote_source.capabilities);
-  pn_data_clear(link->remote_target.properties);
-  pn_data_clear(link->remote_target.capabilities);
 
-  err = pn_data_scan(args, "D.[.....D.[.....C.C.CC]D.[.....CC]",
+  err = pn_data_scan(args, "D.[.....D.[.....C.C.CC]",
                      link->remote_source.properties,
                      link->remote_source.filter,
                      link->remote_source.outcomes,
-                     link->remote_source.capabilities,
-                     link->remote_target.properties,
-                     link->remote_target.capabilities);
+                     link->remote_source.capabilities);
+
   if (err) return err;
 
   pn_data_rewind(link->remote_source.properties);
   pn_data_rewind(link->remote_source.filter);
   pn_data_rewind(link->remote_source.outcomes);
   pn_data_rewind(link->remote_source.capabilities);
+
+  pn_data_clear(link->remote_target.properties);
+  pn_data_clear(link->remote_target.capabilities);
+
+  if (pn_terminus_get_type(&link->remote_target) == PN_COORDINATOR) {
+    // coordinator target only has a capabilities field
+    err = pn_data_scan(args, "D.[.....D..D.[C]...]",
+                       link->remote_target.capabilities);
+    if (err) return err;
+  } else {
+    err = pn_data_scan(args, "D.[.....D..D.[.....CC]",
+                       link->remote_target.properties,
+                       link->remote_target.capabilities);
+    if (err) return err;
+  }
+
   pn_data_rewind(link->remote_target.properties);
   pn_data_rewind(link->remote_target.capabilities);