rgw: decouple object name from index representation

We can't have a direct mapping between the object name to the way we
index it in the bucket index. Have rgw_obj provide different
representations appropriately and use the proper ones where needed.
Introduce the instance element which will be used to refer to versioned
objects.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: rename rgw_obj::key to rgw_obj::loc

to avoid confusion

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw, cls_rgw: various datastructures use new rgw_obj_key

Instead of using a string for referencing object's index key, use a
rgw_obj_key structure that's also references the object's instance.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: rename cls_rgw_obj::key to cls_rgw_obj::loc

to avoid confusion.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
cls_rgw: change data structures to keep single object key structure

instead of keeping the key name and instance separately. Also, translate
key structure into the index key string representation.

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
rgw: adapt to new objclass interface

use rgw_obj_key instead of string, and pass it on to the objclass.

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