osd_types: introduce cpg_t, pg_shard_t

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGBackend: stub out the pg_shard_t based interface methods

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGBackend: move temp handling into PGBackend parent class

It dirties the interface, but ECBackend will handle temp
colls in precisely the same way as ReplicatedBackend.
When/if it becomes an issue, we can shuffle the temp
handling into another common base class.

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGBackend: move attr and rollback methods into PGBackend

These are going to be identical with ECBackend.

Signed-off-by: Samuel Just <sam.just@inktank.com>
src/osd/: add ECBackend stubs

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGBackend::PGTransaction: clarify which methods are optional

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

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