Significant refactoring to address issues #97, #107, #109, #113, #114, and #116.

 Re-organized the packages to better reflect the classes responsibility:

 - Moved classes related to eventing into a `reactor.event` subpackage.
 - Moved `Promise`, `Stream`, and `Deferred` into a `reactor.composable` subpackage.
 - Moved `Cache`, `LoadingCache` into a `reactor.cache` subpackage.
 - Renamed the `using()` methods on the `Environment` to better reflect what they are actually configuring. Now, instead of using an overloaded `using` method, the various components are configured by calling a method that relates to the component configured. e.g. `env(Environment env)` for configuring an Environment, `synchronousDispatcher()` rather than `sync()` for configuring a `SynchronousDispatcher` etc...
 - Updated all tests, the groovy and tcp submodules to reference the new package naming scheme.
Tweak README to reflect latest API changes.
Merge branch 'package-refactoring'
fix package tangle
update copyrights
Remove Reactor registration methods

The use of Registry and the resulting exposure of Registrations from
Environment brought a number of problems with it. For example,
Registrations can be paused and can be cancelled after use which does
not make sense for a Reactor registered with an Environment.

The ability to register Reactors with an Environment was not being
used anywhere. Taking this into account, along with the design issues
described above, the decision has been made to remove this
functionality. It is expected to return in a better, more considered
form in the future when a concrete need arises.

Fixes #107