wip copy on read

This is the copy-on-read feature based on both cmgitdream's (https://github.com/ceph/ceph/pull/2158) and cchengleo's (https://github.com/ceph/ceph/pull/2587) improvement. Please close https://github.com/ceph/ceph/pull/3030 and https://github.com/ceph/ceph/pull/2852 as it is easier to merge into this.
For non-clones, the state machine will directly go from LIBRBD_AIO_READ_FLAT to exit, without doing any further processing (i.e., read from parent). This is to follow the same principle as the copy-on-write state machine.