ceph_json: add a utime_t decoder

This needs to be cleaned up a bit as we don't actually want to
import rgw_common into ceph_json (we'll need to pull the parse_date
out of that and into somewhere more accessible/appropriate).

Signed-off-by: Greg Farnum <greg@inktank.com>
cls_replica_log: implement decode_json for the types

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: rework replica log + RESTful api

Rather than making the caller code handle encode/decode/dump etc,
we introduce an RGWReplicaBounds struct which the RGWReplicaLogger classes
traffic in (instead of the string marker, utime_t time, and list of pairs of
items). Right now this is just referring to cls_replica_log internal structs,
but we use typedefs so that we can cleanly change them over later and avoid
crossing the namespaces too much.

This greatly reduces the amount of code in rgw_rest_replica_log -- hurrah!

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Signed-off-by: Greg Farnum <greg@inktank.com>
rgw: replica log RESTful api uses bucket instance id

Modified RESTful api for replica log to use bucket instance id
instead of bucket name.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
cls_log: store info in header, new op to retrieve it

Keep max_timestamp, max_marker. Add a new op to retrieve header.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: RESTful api for shards info

For both mdlog, datalog

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
rgw: handle new rest operations

md + data logs, get shard info

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