The providers approach is lengthy and tiresome. Removed relevant classes.

Instead, 'dependencies' should be resolvable, as they were before, however a form of dependency must be resolvable using a provider. In this way, providers act as a convenient interface for building new objects, to be used in application or library code, rather than as the backbone for dependency injection on the whole.
Use a dependency model approach, with recursive resolution.

Copied in from test project.
Added a new set of test classes with different dependencies.
Updated global import headers.
Added global preprocessor definition _RIVET_.
Added blank specs with pending tags.
Added sample usage.
Modularize example usage.
Added notes on provider instantiation for future pondering.