Add support for InstanceProducer

This adds logic to enable producing an instance of an arbitrary class:
- factory method (overloading of the #to, and #to_series_of methods
- added tests (with and without arguments to constructor)
- fixed issues with logic (class by string)
Add support for ProducerProducer:

This adds support for producer producer:
- a custom producer can be used
- the custom producer can be instantiated once, or on each
  lookup
Add test that lookup of value and producer are consistent

This also fixes a problem where scope was not passed when getting a
producer via key