PG,PGBackend: expose acting and backfill_targets

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGBackend: add some additional helpers.

ECBackend's primary specific logic mostly won't treat the
primary shard specially, so it'll be handy to have primary
agnostic helpers for get_shard_info and get_shard_missing.

Signed-off-by: Samuel Just <sam.just@inktank.com>
PG: allow PGBackend to set criteria for PG up-ness

ECBackend needs to be able to require that a readable
set of the most recent interval to write be available
in order to ensure that it rolls back the log far
enough.

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: flesh out ECBackend implementation

Signed-off-by: Samuel Just <sam.just@inktank.com>
osd/: instantiate the right backend based on pool

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