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/: Excise OSDService from ReplicatedBackend

Signed-off-by: Samuel Just <sam.just@inktank.com>
ObjectStore: use ghobject_t for setattrs

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

Signed-off-by: Samuel Just <sam.just@inktank.com>
messages,osd: add EC messages and associated types

Signed-off-by: Samuel Just <sam.just@inktank.com>
osd/ECUtil: add ec encode/decode util helpers

Signed-off-by: Samuel Just <sam.just@inktank.com>
osd/ECTransaction: add type encapsulating EC transaction

Signed-off-by: Samuel Just <sam.just@inktank.com>
ECBackend: start fleshing out ECBackend client IO path

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