libyaml integration

YAML is an ugly mess and the only reasonable C parser I found for it was https://php-yaml.googlecode.com/svn-history/trunk/parse.c

This CFEngine-specific implementation maps YAML into our in-house JSON library, so timestamps and many other advanced YAML features are not supported.  I did the best I could but this could use some review and tough love.  It could also use the same testing as `readjson()`.

The user-facing functions `readyaml()` and `parseyaml()` are provided, with acceptance tests.

Finally, if it's accepted, the function `writeyaml()` (not trivial but doable) will be needed.
Is this a good idea? I can see this hiding important messages from the user if the file truly does not exist. Isn't it better to handle this in policy with classes if execution order is a problem?