(PUP-1019) Remove ZAML

Before this commit we were using ZAML by monkey patching the `to_yaml`
function to use ZAML.dump instead of YAML.dump. After removing `zaml.rb`
tests started failing because of the way that ZAML serialized YAML so
assertions in those tests were changed.

This commit also adds in a patch to YAML.Psych to handle the cases where
ruby objects were being encoded improperly.

This commit removes the use of ZAML in puppet as part of the Puppet 4.x
code removal efforts.
(PUP-1019) Fix serializing environments.

This commit fixes a regression with Puppet::Node::Environment
serialization. When a Puppet::Node::Environment object would be
serialized the entire object was serialized instead of just the
environments name.
(maint) Clarify Puppet::Util::PsychSupport#encode_with method

Add additional documentation on the encode_with method.
Merge pull request #3301 from demophoon/remove/master/zaml

(PUP-1019) Remove ZAML