[YAML] Added support for empty maps

Previously, the parser treated empty maps ( {} ) the same as empty
sets ( [] ).  Both were returned as an empty PHP array.  Since these
are distinct entities, this can cause considerably problems for
the users, especially when YAML is being serialized into another
format such as JSON.

This commit allows the user to enable empty-map support via a third
parameter on the Parse method.  It defaults to `false`, which means
that this commit does not break backwards compatibility.

If the user enables empty-map support, empty maps are represented
by an empty PHP object of type stdClass().  Empty sets remain
as empty PHP arrays.