rgw: head acls target can be quoted

when passing x-amz-grant-* headers, the target (id, email,
group) may be quoted.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: pass grant headers to target when writeing object

When writing object to remote gateway.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: propagate error from remote gateway when copying object

Also make sure that we don't continue iterating locally through
the object.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: propagate mtime from remote rgw on copy

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: generate read request if source rgw is remote

in a copy operation

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: organize get_obj handling for copy a bit different

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: separate req_state from object put processors

At least, for most of them. We'll move this code to rgw_rados.cc,
and we don't want it to have req_state.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: move most of object put processors implementation

move code from rgw_op.cc to rgw_rados.cc, so that we could
use it in the lower layer.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: a few fixes to copy object across region

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: pass original object attrs through extra request data

introduce a new mechanism that sends extra data with object
info, and use it to encode source object metadata.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: bucket marker contains zone name

(issue 5347)
We need this so that raw object names on different zones within
the same region don't collide.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: cleanup, move init_meta_info() into req_info

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: forward amz headers of copy request to remote rgw

So that if request has any special conditions, it'll be processed
on the remote gateway

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>