osd_types: add read_error flag to Scrubmap::object

Signed-off-by: Samuel Just <sam.just@inktank.com>
PG::_scan_list: record read errors in the Scrubmap::object

Signed-off-by: Samuel Just <sam.just@inktank.com>
PG: make _select_auth_object smarter

Previously, we just picked the first one to have the object in
question.  Now, we will attempt to choose one that has as
much of the following as possible:
1) has the object (there must be one)
2) has an object_info attr
3) has a valid object_info attr
4) has an object_info whose size matches the scrubbed size

Signed-off-by: Samuel Just <sam.just@inktank.com>
PG::_select_auth_object: prefer a peer which did not hit a read error

Signed-off-by: Samuel Just <sam.just@inktank.com>
OSD: add truncobj debug command hook

Signed-off-by: Samuel Just <sam.just@inktank.com>
FileStore,OSD: add mechanism for injecting EIO for testing

Signed-off-by: Samuel Just <sam.just@inktank.com>
PG: read_error should trigger a repair in _compare_scrub_objects

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