Update to Gradle 1.7
Changed the way reconnections are made. Now the Reconnect instance is expected to be passed into the TcpClientSpec.

It's mostly stateless now and can manage reconnection to different hosts by implementing the `Tuple2<InetSocketAddress,Long> reconnect(InetSocketAddress addr, int attempt)` method. The algorithm can then decide to which host a reconnection attempt should be made and how far into the future to delay that attempt.

 A reconnection will be attempted on the initial `open()` as well as if a client was connected and the connection is unexpectedly dropped.

 Care should be taken, though, in not trying to reconnect perpetually if connections are dropped quickly after a successful connect. An initial delay of 5, 15, or 30 seconds is recommended to ensure that a tight reconnection loop doesn't occur.
Added methods for dealing with shorts to the Buffer class.
Added a simple PassThroughCodec for preserving a Buffer when using any Codec that expects a delegate Codec.
Tweak the TcpClient tests.
Added a FrameCodec that (primarily) decodes incoming data into Frames. A Frame consists of a variable length "prefix" Buffer which likely describes the type of frame being received, a length field of 2,4,or 8 bytes, and the remaining data filling out the Frame.
Reverse the order of the CTOR parameters to match their logical place in the frame of data.
Make sure dataSuppler and consumer are only set once.

This changeset makes sure that on the processor spec,
the dataSupplier and the consumer are only set once.
This also makes the contract ecplicit that in the
current implementation, only one dataSupplier and
one consumer can be used.
Merge pull request #160 from daschl/processorspec-assertions

Make sure dataSuppler and consumer are only set once.
Adding batching capabilities to the DelegatingConsumer.

This change makes it possible that (optinally) BatchConsumers
can be used as delegates. They will be notified of a batch
start and end if they are, and it will be silently ignored
if they are ordinary Consumers.
Fixes #159 Changed Processor to accept a List of Consumers rather than just a single Consumer.
Merge pull request #161 from daschl/delegating-batch-consumer

Adding batching capabilities to the DelegatingConsumer.
Addresses #141 Rework reconnection logic to provide two different methods for open(). The original method now just does a single connection attempt. If it fails, the Promise is notified of the failure and the user can manually retry. The second form of open() takes a Reconnect object and returns a Stream instead of a Promise. The Stream will be populated by TcpConnection objects when a connection is successful. The first time a connection is made and any subsequent reconnects will each have new TcpConnection objects associated with them.
Add duplicate() and copy() operations to Buffer.