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
Updated S3 plugin to deal with `nil` list values.

Previously, all response lists were returned as empty
arrays. This change fixes the plugin to respect the possibility
of nil list values.
Resolved an issue with nested param conversion.

The param converter had a bug that would cause it to
convert list and maps values, but not recursively.
If the list or map value was complex, and not scalar, this
could cause issues when the param was validated.

See #99
Added a changelog entry for the recent XML parsing change.
Now returning a `DefultList` class instead of `nil` for missing XML lists.

This preserves backwards compatability with previous versions, and
eliminates the need for users to nil check prior to accessing list data
that might be missing from the response XML.

To ensure these empty lists are not serialized as request params, they
respond to `#nil?` with `true` when empty. This allows serializers to
safely ignore them, as well as the param converters.
Added Cloud Front distribution CRUD integration test.
Merge pull request #102 from aws/parsing-empty-xml-elements

Update how empty XML elements are parsed, resolved an issue with nested param conversion and added CRUD integration tests to ensure Cloud Front distribution CRUD operations work without modifying the response structures.