ReplicatedPG: support async reads on ec pools

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: make COPY_GET async read friendly

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: EOPNOTSUPP on ec_pool if there are omaps in the COPY_GET

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: don't leak the copy transaction

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: handle removing the old object in finish_copy_op

do_osd_ops will need to either copy the old version out of the
way or simply delete it depending on mod_desc.  Thus, defer
handling filling that part in until we finish the copy op.

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG::finish_copyfrom: check new_obs.exists, not obs.exists

If the transaction previously removed the object, the stat update
will have already happened.

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: fill in mod_desc in finish_copyfrom

Signed-off-by: Samuel Just <sam.just@inktank.com>
test/osd/: verify length of buffer returned in read

Signed-off-by: Samuel Just <sam.just@inktank.com>