Update Promise's state handling to be thread-safe

Remove state from Promise and use the state that's already tracked by
Composable instead. Add isError, isSuccess and isPending methods to
make this state available to clients.

Fixes #40
Fixes #35
Merge branch 'thread-safe-promise-state'
Polishing

Remove dead code
Tweak javadoc for Promise.
Add test for await.
Changed the way R.schedule runs tasks. Before, the behavior was to create a new anonymous Selector, register that on the given Observable, call notify so that given Consumer gets invoked in the context of the Dispatcher and gets past the given argument.

Now, R.schedule relies on an implicit Consumer on the passed Observable that is responsible for running tasks. This is more efficient in that it uses the default Selector rather than creating new ones all the time, and it doesn't incur the cache miss of a new Selector to make it more efficient for use in large sets of tasks in a batch situation. Because of this, it's somewhat related to #27.
Bump up time allowed for logback appender tests to get around false negatives.
Remove static state. Tidy up Dispatcher lifecycle

Remove all static state from Reactor. This has resulted in Context
being deleted entirely. Dispatchers are now created directory. New
default constructors have been added to ease the creation of the
different types of Dispatcher in their default configurations.

The ReactorFactoryBean has been removed as it relied heavily upon the
state that was previously being held in R. The new direction is that
in a Spring app the application context will maintain the state.
An XML namespace and Java configuration support will be added in
the future.

Dispatcher lifecycle

The R class has been drastically reduced in size: it now only has
a single method on it.
Merge branch 'remove-statics'
Remove Jacoco: it makes the build take forever
Move creation of Reactors outside loop.
Comment out an interrupt in BlockingQueueDispatcher that was causing saturation of CPU in the Gradle build for no apparent reason. When that interrupt is commented out, the tests seem to run like normal.
Change order of maven repos to fix build problems.
Stop processing tasks when interrupted

When BlockingQueueDispatcher's task executor thread is interrupted
we should break out of the task processing loop and allow the thread
to die.

Reinstate Jacoco code coverage in the build now that we've got to the
bottom of the real cause of the slowness.
Start AsyncAppender's dispatcher
Initial port of Gary Russell's code

Port of Gary Russell's Reactor-based TCP code. This port removes all
Spring dependencies.
Improve locking in Buffers

Ensure that the lock is held before checking for exhaustion,
otherwise the signal that the feeder is no longer exhausted may be
missed.
Updates for compatiblity with latest reactor core
Remove @since versions as they're from SI
Merge branch 'reactor-tcp'