btrfs: manage free dev_extents with rb_tree.

Currently, when we want to find a free dev_extent for new chunk,
we have to find a hole in device tree. It will read from device
tree again and again.

This patch introduces a structure of free_dev_extent_tree to each
btrfs_device. It means each device has a rbtree to manage the free
dev_extent of itself. In this way, when we need a new free dev_extent
for a new chunk, we just need to find a free_dev_extent in this
rbtree.

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
fix end

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>