Divided into API and implementation, added Reactor project

Divided the single bundle into an API bundle and the implementation
bundle. Created a top-level Reactor POM for both bundles. Cleaned up
POMs and put dependency versioning within the parent.