Change hiera2 config reader to read categories as array instead of hash

The config was read as a hash of category names to value/path. This
is bad because a Ruby Hash does not guarantee the order in all versions
of the Ruby runtime. The order here is important as the precedence order
must be preserved.

This commit also changes what the hiera2 bindings provider returns from
a load; it is now a ContributedBindings instance which contains both
the named bindings, and the effective categories.

Tests and fixture data updated as a consequence.