Fix multipart upload is required SLO in pipeline

Multipart upload is enable by default, but it needs "slo" middleware
support. If it isn't exist in pipeline, multipart upload still work, but
download is not work(that's only xml file you can get.)

If there is no "slo" in pipeline, all requests of multipart from client
will be reject(return S3NotImplemented, 501 Not Implemented).

Change-Id: If0a862d9f80cc806f5b0a8a0e87c70b17920f635
Closes-Bug: #1396039
Draft: Acl class design for supporting S3 ACL

This comes from previous work to achieve real S3's ACL model.
Previous discussion is here. (https://review.openstack.org/#/c/122029/)

This supports ACL class and its related model (e.g. Grant, Grantee)
with a feature to translate between a python class and an ElemntTree for
XML used for S3's request and response.

The model we need to disscuss is as follows:

AccessControlPolicy:
    Owner:
    AccessControlList:
        Grant[n]:
            (Grantee, Permission)

It comes from official S3 model overview. Please see official
documentation here (http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html)
in detail.

TODO:
A stuff to translate between a python class and JSON format used for
implementations to achieve ACL handling at backend swift.

Change-Id: Ic6765f2a530caba6e22d5805323e31eb3d3013e7
acl: add preliminary support for S3 ACL

Currently, Swift3 sets and retrieves Swift ACLs for S3 ACL requests.  However,
S3 ACL is too different from Swift ACL to implement the below reference.
  http://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
With this patch, Swift3 uses its own metadata for ACL
(e.g. X-Container-Sysmeta-Swift3-Acl) to achieve the best S3 compatibility.
This patch only embeds the S3 ACL into the Swift metadata.  The swift3
middleware does not use it for S3 requests yet; this will be addressed later.

Change-Id: I4522910b6b3a0066f24caa98727fdeb85837e42b
acl: use S3 ACL for object and bucket APIs

Change-Id: I8ec79fe4cea1370cbf433a5c20f5e4cdf5b0d298