(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.