rgw: reduce calls to rgw_obj.set_obj()

This commit is part of the performance work that we're doing.

default manifest iterator construction did unneeded init of rgw_obj.
Also add a smarter copy constructor to RGWObjState that does not copy
manifest if not needed.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>

where is this copy constructor being called? could we use references or pointers there instead? Usage of this seems pretty well-confined, so I wonder if it'd be more maintainable to change the users than to remember to update the copy constructor if we add a data member later.