subresource: introduce acl class

This prepares for full support of the S3 ACL feature at
http://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html.

Change-Id: Ib34556833b4ee65d5cd94d1ee366755276434c85
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: I0da000da21c27693aa998ce1299d662810e017ce
acl: use S3 ACL for object and bucket APIs

Change-Id: Iacc7e8da404c0dfa985e5bf6a1e4aca9a73b7194
subresource: introduce logging class

Change-Id: I23dcd47512d4d6dba2a59d0fc212a35e466d4002
subresource: add support lifecycle class

Change-Id: I3881a638ff7aecf8e57dcd12ad5f471b540014eb
subresource: add versioning class

Change-Id: I7279e97c5babf12cc7d4e12e8c0dcb5a279f2380
acl: add validation check

Change-Id: Iea99456ad93dca0cfc19b5dad28297ef96cdbae6
acl: add option to forbid public_write

Change-Id: Id3e7bcc8ac0d87e11509245731f5a9069cba687c
Check owner privilege

Change-Id: I704cbbeb1e37da87be67151905875f6fbcd5a5c2
lifecycle: add preliminary support

Change-Id: Id8f23e4b219f1c975bae768c43b1f6fab4bf2418
acl: implement LogDelivery class

Change-Id: I5dea2c828cee3446fc18be6a8373d34d46ff763b
acl: ignore swift acl

FIXME, this feature should be optional.

Change-Id: I11c75055835dd4a4942562bed3d07a7d72f34f7e