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, 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>