rgw: a function to read all request input

Factor out this useful function. Also make sure that
we never read more than a specified (large enough) max.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: parse location constraint on bucket creation

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: store region in bucket info

only handle requests that come to buckets stored in correct
region.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: add access key to zone info

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: infrastructure to send requests to different region

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: forward bucket creation to master region

plus many fixes.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: pre-generate bucket object version before creating it

Use this version when creating the bucket instead of letting the
objclass auto-generate it, so that we could return it to the slave
region when creating its bucket on the master.

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