Fix help text for disk_{set,toggle}

Fix the help text to show *disk* flags instead of partition flags.
libparted: copy pmbr_boot when duplicating GPT disk

* libparted/labels/gpt.c (gpt_duplicate): copy pmbr_boot flag
tests: test creating 20 device-mapper partitions (#803108)

* tests/t6004-dm-many-partitions.sh: Make sure > 17 partitions appear in
  device mapper.
libparted: use dm_udev_wait (#698121)

This is based on Peter Rajnoha's patch to use dm_udev_wait to
synchronize with udev.

This requires libdevmapper v1.02.39 and higher.

mailing list thread:
https://lists.gnu.org/archive/html/bug-parted/2010-09/msg00007.html

* libparted/arch/linux.c (_dm_task_run_wait): New function
(_is_dm_major): Add cookie and change call to _dm_task_run_wait
(_is_dmraid_device): Same
(_dm_is_part): Same
(dm_canonical_path): Same
(_dm_remove_partition): Same
(_dm_get_partition_start_and_length): Same
(_dm_add_partition): Same
(linux_new): Enable udev sync support
libparted: preserve the uuid on dm partitions (#832145)

* libparted/arch/linux.c (_dm_add_partition): Set the uuid if there was
  one.
tests: Make sure dm UUIDs are not erased

* tests/t6005-dm-uuid.sh: Make sure dm UUIDs are not erased
libparted: don't canonicalize /dev/md/ paths (#872361)

This is the same issue we have with /dev/mapper/ paths that was fixed in
commit c1eb485b9fd8919e18f192d678bc52b0488e6ee0. When libparted
is used to setup the device the symlink should be used to reference it,
not the backing device name which could change.

* libparted/device.c (ped_device_get): Don't canonicalize names
  that start with "/dev/md/".
tests: rewrite t6001 to use /dev/mapper

This test began failing because using a private copy of /dev/mapper
confuses the system. This fixes that and generally cleans up the test.

tests/t6001.sh: update to use /dev/mapper directly
libparted: Add Intel Rapid Start Technology partition flag.

This adds support for the irst partition type flag. Sets the type to
0x84 on MS-DOS and D3BFE2DE-3DAF-11DF-BA-40-E3A556D89593 on GPT.

* NEWS (New Features): Mention it.
* doc/C/parted.8: Document irst flag.
* doc/parted.texti: Document irst flag.
* include/parted/disk.in.h (_PedPartitionFlag): Add PED_PARTITION_IRST flag
* libparted/disk.c (ped_partition_flag_get_name): Add irst flag
* libparted/labels/dos.c (DosPartitionData): Likewise
(raw_part_parse): Likewise
(msdos_partition_new): Likewise
(msdos_partition_duplicate): Likewise
(msdos_partition_set_system): Likewise
(clear_flags): Likewise
(msdos_partition_set_flag): Likewise
(msdos_partition_get_flag): Likewise
(msdos_partition_is_flag_available): Likewise
* libparted/labels/gpt.c: Add PARTITION_IRST_GUID
(GPTPartitionData): Add irst flag
(_parse_part_entry): Likewise
(gpt_partition_new): Likewise
(gpt_partition_set_system): Likewise
(gpt_partition_set_flag): Likewise
(gpt_partition_get_flag): Likewise
(gpt_partition_is_flag_available): Likewise
libparted: Add UEFI System Partition flag.

This adds support for the ESP partition type on MS-DOS. It also aliases
it to the boot flag on GPT which sets the ESP GUID type.

* NEWS (New Features): Mention it.
* doc/C/parted.8: Document esp flag.
* doc/parted.texti: Document esp flag.
* include/parted/disk.in.h (_PedPartitionFlag): Add PED_PARTITION_ESP flag
* libparted/disk.c (ped_partition_flag_get_name): Add esp flag
* libparted/labels/dos.c (DosPartitionData): Likewise
(raw_part_parse): Likewise
(msdos_partition_new): Likewise
(msdos_partition_duplicate): Likewise
(msdos_partition_set_system): Likewise
(clear_flags): Likewise
(msdos_partition_set_flag): Likewise
(msdos_partition_get_flag): Likewise
(msdos_partition_is_flag_available): Likewise
* libparted/labels/gpt.c (gpt_partition_set_flag): Add PED_PARTITION_ESP
(gpt_partition_get_flag): Likewise
(gpt_partition_is_flag_available): Likewise
libparted: Recognize btrfs filesystem

Add support for showing 'btrfs' in  the 'file system' column. Also
allows the used to enter btrfs as the fs type. It doesn't really do
anything -- just sets the partition type to linux.

* NEWS (Changes in behavior): Mention it.
* doc/parted.texti: Document btrfs fs.
* (libparted/fs/Makefile.am): Add btrfs.c
* (libparted/fs/btrfs/btrfs.c): Probe for btrfs
* (libparted/libparted.c): Register btrfs
tests: Add btrfs and xfs to the fs probe test

* tests/tests/t1700-probe-fs.sh: Add btrfs and xfs
tests: Restrict gpt-header-munge to little-endian systems

gpt-header-munge uses perl to manipulate the gpt header for the test. It
only works on 64 bit little-endian systems so restrict it to x86_64
only.

* tests/t0210-gpt-resized-partition-entry-array.sh: Skip if not x86_64
* tests/t0211-gpt-rewrite-header.sh: Skip if not x86_64
libparted: don't require a system id string

Historically the system ID field of a fat boot sector contains a
string identifying the OS that formatted it.  It appears that some
recent versions of Windows have stopped bothering with this.  Stop
requiring this string to recognize fat as valid.