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'