Fix swift3 behavior with set_acl to existing container

Fix swift3 behavior with set_acl to existing container

S3 allows a bucket PUT with an X-Aws-Acl header (e.g. canned acl) and an "acl" query param.  But swift3 was erroneously returning BucketAlreadyExists.  This patch fixes swift3 to allow this action which S3 allows.

Also some restructuring of how XML is constructed to be more (IMO) readable.