(PUP-1151) Add documentation for environments endpoint
(PUP-1151) Specify JSON and error responses

We need to move away from PSON in puppet. Using V2 as a switching point
is as good as any. This also specifies how error responses are
formatted.
(PUP-1151) Have puppet depend on json

In order to have the v2 api emit and consume JSON puppet will need to
have access to a json library. This adds it to our dependencies for
debian, redhat, and gem packages. This should be a safe thing to do
since puppet already needs hiera and hiera depends on JSON, so this is
just taking the same dependency that hiera already had and applying it
directly to puppet.
(PUP-1151) Fix environment enumeration endpoint test
Merge pull request #2241 from aperiodic/pup-1151-environment-enumeration-test-fix

(PUP-1151) Fix environment enumeration endpoint test
(PUP-716) File19Windows#symlink calls exist? on instance not class.

Fixes a bug that was calling exist? on the File19Windows impl class when
it was now an instance method of the same.
Merge pull request #2242 from jpartlow/issue/master/pup-716-fix-exist-call-in-file19windows-impl

(PUP-716) File19Windows#symlink calls exist? on instance not class.
Merge pull request #2240 from zaphod42/feature/master/pup-1151-environment-enumeration

(PUP-1151) Document environments responses
(maint) Ensure HieraPuppet cached instance is reset

Running the following spec files in the exact given order

  - spec/unit/hiera_puppet_spec.rb
  - spec/unit/indirector/data_binding/hiera_spec.rb
  - spec/unit/parser/functions/lookup_spec.rb

could cause the lookup function spec tests to fail. The HieraPuppet
module would create an instance of Hiera and the specs would not
properly clean it up, the Puppet::DataBinding::Hiera class would
populate stored backend information with invalid data, and trying to
interact with hiera later on could cause bad cached data to be read,
causing failures that couldn't normally happen. This commit explicitly
wipes the HieraPuppet cached instance after the tests are run, in an
effort to prevent any other developers from spending thousands of hours
tracing through mazes of twisty spec passages.
Merge branch 'maint/master/reset-hiera_puppet-instance'
Merge branch 'master' of https://github.com/puppetlabs/puppet