Fix issues with producer producer

This concludes the work on producer producer. The semantics were
unclear. This commit fixes these issues:
- a singleton producer producer will create one producer that is used
  to produce the value. If this value is singleton or not is up to the
  created producer (typically not).
- a non singleton producer (series of), creates a new producer for each
  request to lookup, or lookup_producer. A looked up producer does
  not create yet another producer on each call to its #produce.

This enables having a producer that produces a new series of values
for each lookup_producer.