Wip copy on read

This is the copy-on-read feature based on both cmgitdream's and cchengleo's improvement. Please close https://github.com/ceph/ceph/pull/2852 and https://github.com/ceph/ceph/pull/2852 as it is easier to merge into this.