PROTON-1756 Reuse callback for send of Transfer frames

Reduce GC pressure by not allocating new Runnables on each call to send
a Transfer into the Frame writer.
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
index 33e4f87..d7fbb10 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
@@ -142,6 +142,8 @@
 
     private List<TransportLayer> _additionalTransportLayers;
 
+    private final PartialTransferHandler partialTransferHandler = new PartialTransferHandler();
+
     /**
      * Application code should use {@link org.apache.qpid.proton.engine.Transport.Factory#create()} instead
      */
@@ -590,8 +592,12 @@
                 ByteBuffer.wrap(delivery.getData(), delivery.getDataOffset(),
                                 delivery.getDataLength());
 
-            writeFrame(tpSession.getLocalChannel(), transfer, payload,
-                       new PartialTransfer(transfer));
+            try {
+                writeFrame(tpSession.getLocalChannel(), transfer, payload, partialTransferHandler.setTransfer(transfer));
+            } finally {
+                partialTransferHandler.setTransfer(null);
+            }
+
             tpSession.incrementOutgoingId();
             tpSession.decrementRemoteIncomingWindow();
 
@@ -1655,13 +1661,14 @@
         return "TransportImpl [_connectionEndpoint=" + _connectionEndpoint + ", " + super.toString() + "]";
     }
 
-    private static class PartialTransfer implements Runnable
+    private static class PartialTransferHandler implements Runnable
     {
-        private final Transfer _transfer;
+        private Transfer _transfer;
 
-        public PartialTransfer(Transfer transfer)
+        PartialTransferHandler setTransfer(Transfer transfer)
         {
-            _transfer = transfer;
+            this._transfer = transfer;
+            return this;
         }
 
         @Override