Don't apply Eclipse plugin to top-level project

If the Eclipse plugin is applied to the top-level project, after
running ./gradlew eclipse, Eclipse's import existing projects
functionality will only see a single project to import.

The apply of the plugin has been moved so that it's only applied to
subprojects. This allows Eclipse's import to see all of the projects.
Fix Groovy type warning
Require an inputType to be specified when creating a JsonCodec

Previously, a JsonCodec could be created without an input type
being specified. This caused the input type to default to JsonNode.
However, this could clash with the declaration of the JsonCodec
instance. For example, the JsonCodec may have been declared as
JsonCodec<Alpha, Bravo>, i.e. it expects received JSON to be turned
into Alpha instances, not JsonNode instances. This led to an increased
likelihood of ClassCastExceptions.

To reduce the chances of this problem occurring, the constructors have
been modified to always require an inputType to be specified. The use
of generics helps to enforce that this type matches the declaration.
Some basic unit tests have been added to test decoding of JSON both
into a standard Java type, and into Jackson's JsonNode type.

Three other unused fields and some corresponding constructor arguments
have been removed as well.

Fixes #133
Update unit tests with JsonCodec changes

Update unit tests missed as part of 16fd1d30
Polish Javadoc in reactor-tcp
Reduce visibility of some methods that need not be public
Rework ReactorTaskExecutor to be DispatcherTaskExecutor

Using a Reactor for task execution introduces some unnecessary
overhead: the task is executed by notifying the reactor of an event,
the notification being matched using a selector to a consumer, and a
Dispatcher being used to dispatch the event to the consumer. A lot of
this processing can be eliminated by using a Dispatcher directly.

Using a Dispatcher directly is not quite as easy as I'd like. A lot
of the types involved in the above processing are exposed by
the Dispatcher.dispatch method so there are some hoops to jump through
to get a Dispatcher to call a Runnable's run() method. I have opened
issue #134 to explore improving this.

Completes #115
Simpler constructor for RingBufferDispatcher

Per Mark Pollack's suggestion, provide a RingBufferDispatcher
constructor that takes a single argument: the dispatcher's name.

Closes #105
Update the README

Fixes #96
Update README to state there are 5 kinds of event routing, not 3
Add synchronized block around notifyAll when setting a value
Added when() error consumer assignment to TcpConnection. Captured errors should now all be reported on the internal events Reactor so that clients can assign error Consumers based on exception type. Consumers should be assigned only once at the connection level, preferably as part of the connection initialization process.
Merge branch 'connection-error-handling'
Update README with latest maven coords.
Tweaked README.
Tweaked README.
Updated build file to handle generating combined javadoc for deployment to the reactor.github.io website.
Tweak build file.
OSGi Support #79 (reactor-core, reactor-tcp)
Merge pull request #135 from lburgazzoli/master

OSGi Support #79 (reactor-core, reactor-tcp)