tools: Improve ceph_scratchtoolpp

Minor output improvements
Remove clone_range code that was asserting

Signed-off-by: David Zafman <david.zafman@inktank.com>
test: Fix Seg fault in ceph_test_rados

Fixes: #8049

Signed-off-by: David Zafman <david.zafman@inktank.com>
osd: Fix appending write to return any error back to caller

Also, correct double bumping of num_writes

Signed-off-by: David Zafman <david.zafman@inktank.com>
librados, test: Make return values consistent across reads and writes

Fix consistency of read, write, append, write_full to return bytes read/written
Include C (rados_*) variants, C++ ctx variants
and aio get_return_value() and rados_aio_get_return_value()

Signed-off-by: David Zafman <david.zafman@inktank.com>
pybind: Check that "key" is a string

Signed-off-by: David Zafman <david.zafman@inktank.com>
pybind, test: Add python binding for append and add to test

Signed-off-by: David Zafman <david.zafman@inktank.com>
test: Add EC unaligned append write test to ceph_test_rados_api_io

Signed-off-by: David Zafman <david.zafman@inktank.com>
test: Add multiple write test cases to ceph_test_rados_api_aio

Signed-off-by: David Zafman <david.zafman@inktank.com>
test: Improve testing ceph_test_rados_api_aio by checking return_values

Add set_completion*PP() functions to cast arg to correct class
Add return_value checks
Add some reads with buffers larger than object size
Check buffer length on reads

Signed-off-by: David Zafman <david.zafman@inktank.com>
test: Add EC testing to ceph_test_rados_api_aio

Fixes: #7437

Signed-off-by: David Zafman <david.zafman@inktank.com>