Changed the existing send(OUT) method to return a Promise.

To avoid having to create too many Promises that might never get used in a fire-and-forget scenario, I changed the Consumer<Boolean> onComplete to a Deferred<Boolean, Promise<Boolean>>, which can be null. If it's not, then the success value or an exception is fulfilled in the Promise. If it's null, then errors are only reported on the internal events Reactor which can be handled by calling TcpConnection.when(Throwable, Consumer<Throwable>).
Fixes for Resequencer so it passes the tests
Rewrite the IndexedChronicleQueuePersistor to use Chronicle 2.0. Also fixed some bugs by re-working how QueuePersistors are used by the PersistentQueue.

Also added a Codec facility to the QueuePersistor and implemented some codecs like Java serialization, JSON mapping using Jackson, String, and byte[].
Fix the test for a recent change in the connection API.