rgw: support swift storage policy api

Fixes: #9932

When creating a bucket, set the placement rule according to the
provided X-Storage-Policy http header.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: compare placement target on bucket recreation

and return -EEXIST (409) if requested a mismatching placement target.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: dump X-Storage-Policy header on bucket HEAD

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: cannot modify swift bucket policy

When trying to set a policy on the bucket, fail unless policy matches
current placement rule.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
Merge pull request #2970 from ceph/wip-swift-storage-policy

rgw: support swift storage policy api

Reviewed-by: Josh Durgin <jdurgin@redhat.com>