Bug 2318: Ensure previous Tx in chain is readied before creating the next

In TransactionChainProxy, subclassed TransactionProxy (ChainedTransactionProxy)
to hook into the TransactionProxy to capture the cohort Futures on ready
and to customize the returned create shard Tx Future.

The previous Tx's ready Futures are captured and cached in the enclosing
TransactionChainProxy instance. When the client creates the next Tx in
the chain, the Future from the shard Tx create message is wrapped by a
sequence Future that combines all the previous ready Futures. Thus, when
the previous ready Futures complete, the shard Tx create is sent and
that Future is used to complete the returned Promise.

Change-Id: If002e4d705510aee3f560c506318d25f386768e5
Signed-off-by: tpantelis <tpanteli@brocade.com>
Merge "Bug 2318: Ensure previous Tx in chain is readied before creating the next"