Wip copy on read

An improved copy-on-read implementation based on the pull request (https://github.com/ceph/ceph/pull/2158) by Min Chen <minchen@ubuntukylin.com>, Li Wang <liwang@ubuntukylin.com> and Yunchuan Wen <yunchuanwen@ubuntukylin.com>. 

The bufferlist holding the entire object from parent is allocated separately.

Also provided a unit test for verifying the implementation.
Yes, you are right! The reason I implemented this check is because: 1). RBD cache might be disabled; 2). to avoid multiple concurrent copy-up request for the same object. 

For reads, the copy-up queue itself is indexed with oid. When we perform "read_from_parent_cor", the prerequisite is that a queue entry indexed with oid does now exist (i.e, cor && new_copyup). If there is already a copy-up undergoing, the read will be forwarded to parent by "read_from_parent". Maybe I should refactor the code to make it more elegant.