Add test and fix issue with lookup_producer

lookup_producer was overridden by a method with the same name
that created a lookup-producer instead of looking one up.
There were typos in the lookup_producer that were also fixed.
Improve API and documentation of Injector.

This adds the ability to optionally give a block to
#lookup and #lookup_producer which is yielded with scope and result
or just result. The lookup returns what the block returns if block is
present.

This is good because it make it easier to handle default values when
a value is missing, or to conveniently invoke a custom producer method
without requiring a temporary variable.

Includes tests.
Add FirstFoundProducerDescriptor to the bindings model.

This producer is useful to perform a first found lookup sequence which
can be used to describe a lookup with default value and similar use
cases.
Merge remote-tracking branch 'hlindberg/feature/binder' into feature/binder
Add missing model objects to LabelProvider.

Also adds category.value to the Category label on the format
"Category 'categorization/value' e.g. Category 'environment/dev'.
Tweak some logic to be more ruby-ish
Fix issues and improve design of the bindings_checker

The following is addressed in this commit:
1. Consistent use of x.nil? instead of x == nil
2. Missing bindings in container is a warning instead of error
3. Missing layers in a layered bindign is a warnign instead of error
4. Model is traversed using a tree iterator