btrfs-progs, mkfs.btrfs: add hot relocation support

  Introduce one new mkfs.btrfs option (-h) for hot relocation
which preallocate two new bg types BTRFS_BLOCK_GROUP_DATA_SSD
and BTRFS_BLOCK_GROUP_METADATA_SSD, and the latter is planned for
future use by hot relocation.
  How to use hot relocation, its format like this at first:

	# mkfs.btrfs -h <spinning_disk_blockdev> [any_blockdev] ...

  Note that a spinning disk must be the first block device listed,
otherwise you will get a warning message. To use hot tracking
alone, you only need one block device, and it needn't be an SSD.
To use hot relocation, you should have at least one spinning disk
and at least one SSD.

	# mount -o hot_move <any_blockdev> <mountpoint>

Signed-off-by: Ben Chociej <bchociej@gmail.com>
Signed-off-by: Matt Lupfer <mlupfer@gmail.com>
Signed-off-by: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>