Fix object copy requests.

Currently, we run PUT Object Copy  without 'content-length: 0' or 'transfer-encoding: chunked' returns '411 Length Required'.
This is because Swift returns 'HTTPLengthRequired' when we run object copy without them.
AWS is not required them, so I add ’Content-Length: 0' to Switf3's internal processing.

Change-Id: Ie0b02f49662301de3aa3d3b93d730d2cdf98b66e
Refactor test_s3_acl

This patch introduces generate_s3acl_environ() function
for refactoring of test_s3_acl. It registers necessary verbs against
to both a bucket and an object which keep ACL information for testing.

It achieves really good portability to make s3_acl testing environment
for other test cases so that What we have to do for s3_acl testing is
just calling generate_s3acl_environ() before testing.

Change-Id: I3f5d0d9bae021513d63b0ca35f015241873e3fd5
Show warn/error log when no slo middleware

Change-Id: Iccb5d7f5342c6aecf3fd4da936e104daca2534aa
Draft: s3acl decorator

Current swift3 has a couple of ways for acl handling.
To simplify test code, this introduces s3acl decorator
which suggests which way the test method will check.

In default, swift3 do the native acl testing.
If needed, we can add the s3acl decorater and an argument
like as follows:

No decorator -> test only native acl
@s3acl -> test both of native acl and s3acl
@s3acl(s3acl_only=True) -> test only s3acl

This is still a draft version and most of tests should
be fixed.

TODO:
- keeping sysmeta for s3acl when the test override
  backend swift by register.

Change-Id: I17a423b5c655a670a4304d47ff927df28ac0a37f
Support FakeSwift register overwritten

Current swift3.test.unit.helpers.FakeSwift.register overwrites
whole things for swift response. However, sometimes it deletes
necessary acl information on s3acl decorator.

Change-Id: I42f398526c832f0d25e8e090c0a80dd239a91508
Fix 500 error when no DisplayName in request body.

The original data of body from client to set acl like below:

<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Owner>
    <ID>test:tester</ID>
    <DisplayName>test:tester</DisplayName>
  </Owner>
  <AccessControlList>
    ...
  </AccessControlList>
</AccessControlPolicy>

If the attribute "<DisplayName>" isn't exist, proxy will return
500 Internal Server Error.

Change-Id: Ia02af110109d5ecbcda05f707707b30e604af8f0
Closes-Bug: #1400367
Merge "Fix object copy requests."
Merge "Fix 500 error when no DisplayName in request body."
Merge "Show warn/error log when no slo middleware"
Merge "Draft: s3acl decorator"
Merge "Support FakeSwift register overwritten"