Merge pull request #1589 from dalen/19128_pson_unicode

(#19128) Make PSON handle unicode characters
Revert "Merge pull request #1543 from hlindberg/vendor-rgen"

This reverts commit 493e9208b77feb2d2b3931a694c39c98dfef8b00, reversing
changes made to 8391248c198982e668128368bcd2adfe4bed1890.

We've decided that it will be better in the long run to depend on a
packaged rgen instead of trying to have a copy of it shipped inside
puppet.
Revert "Merge pull request #1542 from hlindberg/vendor"

This reverts commit 8391248c198982e668128368bcd2adfe4bed1890, reversing
changes made to 45ded7da5846e02d24fafddd58d05685de039d88.

Remove the vendoring code. The decision has been made to be much more
restrictive in what we will vendor. Until we actually have something to
put in the code in this manner, we should't keep this vendoring system
floating around.

Conflicts:

	lib/puppet/vendor.rb
(Maint) Depend on rgen for development

With the removal of rgen in the codebase, we need to depend on it using
bundler for development and the packaging system in other cases.

Later changes will add the correct dependencies for the packages.
Merge pull request #1590 from zaphod42/maint/master/remove-rgen-and-vendoring

(Maint) Remove vendoring and rgen
(Maint) Update Gemfile to allow excluding extra gems

We normally have a concept of "basic" and "extra features", but the
Gemfile didn't contain this difference. This updates it to work with
that distinction and also cleans up the handling of the specific git
branches for our (bad) mixture of having a gemspec and not.
(maint) Enable logging for all `puppet doc` commands

Without this commit the --debug and --verbose flags can only be used
with the rdoc mode and doesn't interact with the other documentation
types. This commit extracts the logging configuration to apply to all
documentation modes.

In addition this defaults the log level to :warning. Since warning and
above messages will be emitted on stderr this will not affect the normal
operation of the `puppet doc` command. Using --debug or --verbose will
emit messages on stdout, so they should not be used while
programmatically generating docs.
Merge branch 'adrienthebo-maint-enable_logging_for_all_docs'

* adrienthebo-maint-enable_logging_for_all_docs:
  (maint) Enable logging for all `puppet doc` commands

closes #1580
(#4561) Support structured facts

Add the option stringify_facts which defaults to true. If it is turned
on the current behaviour with turning facts into strings is kept.
If it is false facts are sanitized and only converted to strings if they
aren't booleans, numerics, arrays and hashes. It does this sanitizing in
a nested manner for arrays and hashes.