(maint) Remove support for categories in the binder

This removes the ability to define categories and use
predicated bindings. Instead, all contributors should evaluate
predicates and only contribute applicable bindings.

This reduces the complexity of the binder.

The support for predicated bindings was only there to support
the now removed experimental "hiera2-data-in-modules"
(yardoc) Fix yardoc text for Injector and BindingsFactory
(maint) Refactor Binder to not use two step creation.

Earlier it was required to first create an instance of Binder,
and then ask it to configure categories, and then layers. Now
that categories are removed, the creation can be made in one
step and the layered bindings are now passed to the constructor.

This removes the need to have methods to query if the binder
is configured.

This also adds a first step in supporting creation of a stacked
injector (the binder can not accept a parent binder - this is w.i.p).
(maint) Cleanup spec tests after refactor of binder one step create
(maint) Add support for final binding

A final binding may not be overridden in a higher layer.
(maint) Add handling of layered multibind

This adds correct handling of multibind contributions when
injectors are stacked. Higher layer contributions cannot be allowed
to leave behind a cached multibind containing entries from an overriding
injector when it goes out of scope.
(maint) Add convenient create/override ability to Injector

Setting up the initial injector, as well as creating an override
required quite a bit of gymnastics. This is now made much simpler.

The Injector now has class methods create, create_from_model, and
create_from_hash. The instance has override, override_with_model,
override_with_hash.
Merge pull request #2208 from hlindberg/maint_remove-categories-add-dynamic-layers

(PUP-546)(maint) remove categories add dynamic layers
(PUP-1176) Add evaluator feature switch for future/current evaluator

This adds an --evaluator future/current setting to control if
the future evaluator should be used or not when using the future
parser. It is set to "on" (i.e. "future") by default. Setting it to
"current" turns off the future evaluator.

This commit only contains the setting itself.
(PUP-1176) Add feature switch for evaluator to ParserFactory

This adds the --evaluator future/current switch to the ParserFactory.
It is only in effect when using --parser future. By default the
future evaluator is used, but the older transforming evaluator can
be used by also stating --evaluator current.
(maint) Fix typo in documentation for --parser and --evaluator

A fature is not spelled that way.
Merge pull request #2209 from hlindberg/pup-1176_evaluator-feature-switch

(PUP-1176) Add evaluator feature switch
Merge branch 'master' of https://github.com/puppetlabs/puppet