Refactor producer to use a class instead of just a lambda.

In order to support custom producers it was not enough to just
return a lambda as the producer. This is now instead an instance of
Puppet::Pops::Binder::Producer.