Parsing empty XML elements

Updated the XML parsing logic for empty XML elements.

Two major changes:

* Self-closing or empty XML string value elements now return
  an empty string, and no longer result in a null value.

* When parsing structure members, if the element is not present
  in the output, then a default `[]` or `{}` are not created for
  list or map elements.

The motivation for these changes are to permit data returned
from AWS responses to round-trip back again as input data.

By populating empty lists and maps (`[]`, `{}`), structure
was created where the service did not indicate. This had the
negative side-effect of response structures could not be used
as request params without the possibility creating new empty
elements.

In the same vein, services were returning empty xml elements
to indicate empty strings. These were getting lost in the
translation to nil, which could trigger errors for "required"
string elements when round-tripping.

**Please Note** - This change will break code that assumes
reponse lists are always populated by default to empty arrays, and
that response maps are popualted by default as empty hashes.

See #99