Bump Route53 API version to 2013-04-01
Remove hard-coded API version from Route53 tests
Remove usage of .Client in integration tests
Remove backward-compatible Client property for 2.x

This is a backward-incompatible change with 1.x. If you are using
the .Client property on a Service class, remove this property from
your code.

Upgrading example:

    var sts = new AWS.STS.Client();

Should be:

    var sts = new AWS.STS();
Keep top-level output property for ElastiCache, RDS, RedShift.

This is a breaking change in 2.x. If you use `AWS.ElastiCache`,
`AWS.RDS`, or `AWS.RedShift`, you must now access the response through
the top-level output property in the response. This corrects the SDK
to behave according to documentation output.

Example:

RDS.describeEngineDefaultParameters() used to return:

    { Parameters: [ ... ] }

This operation now returns:

    { EngineDefaults: { Parameters: [ ... ] } }

The full list of affected operations for each service are:

* **AWS.ElastiCache**: authorizeCacheSecurityGroupIngress,
createCacheCluster, createCacheParameterGroup,
createCacheSecurityGroup, createCacheSubnetGroup,
createReplicationGroup, deleteCacheCluster, deleteReplicationGroup,
describeEngineDefaultParameters, modifyCacheCluster,
modifyCacheSubnetGroup, modifyReplicationGroup,
purchaseReservedCacheNodesOffering, rebootCacheCluster,
revokeCacheSecurityGroupIngress

* **AWS.RDS**: addSourceIdentifierToSubscription,
authorizeDBSecurityGroupIngress, copyDBSnapshot, createDBInstance,
createDBInstanceReadReplica, createDBParameterGroup,
createDBSecurityGroup, createDBSnapshot, createDBSubnetGroup,
createEventSubscription, createOptionGroup, deleteDBInstance,
deleteDBSnapshot, deleteEventSubscription,
describeEngineDefaultParameters, modifyDBInstance,
modifyDBSubnetGroup, modifyEventSubscription, modifyOptionGroup,
promoteReadReplica, purchaseReservedDBInstancesOffering,
rebootDBInstance, removeSourceIdentifierFromSubscription,
restoreDBInstanceFromDBSnapshot, restoreDBInstanceToPointInTime,
revokeDBSecurityGroupIngress

* **AWS.Redshift**: authorizeClusterSecurityGroupIngress,
authorizeSnapshotAccess, copyClusterSnapshot, createCluster,
createClusterParameterGroup, createClusterSecurityGroup,
createClusterSnapshot, createClusterSubnetGroup,
createEventSubscription, createHsmClientCertificate,
createHsmConfiguration, deleteCluster, deleteClusterSnapshot,
describeDefaultClusterParameters, disableSnapshotCopy,
enableSnapshotCopy, modifyCluster, modifyClusterSubnetGroup,
modifyEventSubscription, modifySnapshotCopyRetentionPeriod,
purchaseReservedNodeOffering, rebootCluster,
restoreFromClusterSnapshot, revokeClusterSecurityGroupIngress,
revokeSnapshotAccess, rotateEncryptionKey
Treat a null input as an undefined property.

This commit fixes an issue where null inputs would cause parameter
validation to fail. This change also makes the SDK ignore null inputs
when serializing, if parameter validation is disabled.

Fixes #225, #226