Separate specs and the components they create

A number of spec classes are provided to help users create Reactor,
Stream, and Promise instances. To make it clearer which classes are
part of the creation process and which classes are the components that
are created the spec classes have been moved into a separate .spec
sub-package.

Fixes #114