Copy range using fiemap not entire length

Under rbd usage, if a volume has tens of thousands of objects and each 4M
object only has several KB(run fio on this volume or other cases), this volume
will be very low performance after create snapshot on this volume. The OSD will
be busy with large bandwidth read/write although the object actually has few
bytes.

This commit try to use fiemap if backend fs support, it can skip unnecessary
range to write.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>