GPT strings are UCS-2LE not UTF-16

There was a problem using UTF-16, it was writing the Byte Order Mark
before the string which caused problems with older versions of parted
reading the partition name. The test was skipping these 2 bytes when
checking the written string.

* libparted/labels/gpt.c: Switch to UCS-2LE for GPT Partition names
* tests/t0251-gpt-unicode.sh: Update the test
libparted: fix fat resize

The changes to fix filesystem detection on non 512 byte sector sizes broke
fat filesystem resizing.
parted: don't reload partition table on every command

gpt was using a static local variable to suppress repeatedly reporting
an error if you chose to ignore it.  This is incorrect as the variable is
global to all disks, and ignoring the error on one should not suppress its
reporting on another.  Moving the flag to the PedDisk object made it
effectively useless because parted was destroying the PedDisk and reloading
the partition table on every command.

Parted has been reworked to cache the PedDisk once loaded, and only discard
it when changing disks, or creating a new disklabel.
libparted: don't detect fat and ntfs boot sectors as dos MBR

fat and ntfs boot sectors are very similar to an MBR so if you had one of
these filesystems on an unpartitioned disk, parted detected them as a dos
partition table.  Have the dos label code call the fat and ntfs filesystem
probes and if they recognize the sector ( their tests are more stringent )
then don't claim it as a dos label.
libparted: remove old partitions *first* before adding new ones

"libparted: avoid disturbing partitions" put the remove of the old
partition in second pass.  If you simultaneously removed partitions 1
and 2, and created a new partition #1 that overlapped the previous second
partition, the sync would fail because it would try to create the new,
larger partition #1 before removing the old partition #2.
libparted: remove all old partitions, even if new label allows less

We were limiting partition sync operations to the lesser number allowed
by the device, or the label.  This meant that when creating a new label
over an old label that had more partitions than the new one allows, the
higher partitions would not be removed.  Use the greater of the two values
for the remove pass, and the lesser for the add.
libparted: fix loop labels to not vanish

The loop label type was using the existence of a partition as a proxy for
a filesystem being detected, and loop_write() would try to write a loop
signature if there was no filesystem, and erase it if there was.  Because
of this, creating a partition without writing a filesystem to it caused
loop_write to erase the loop label.

There seems to be no reason to bother erasing the loop label if it is still
present along with a filesystem signature, so don't bother with this, and
actually check to see if a filesystem is detected in the partition rather
than using the existence of a partition to decide if writing the loop
signature is needed.  Finally, since there is no way to preserve the
existence of a partition with no filesystem in it, have loop_read() always
create a partition, even if no filesystem is detected.
libparted: don't create partition on loop label

The loop label represents an unpartitioned disk, but creates
a dummy partition to represent the whole disk.  This dummy partition
was actually being loaded into the kernel.  Don't do that.
partprobe: do not skip loop labels

Partprobe was not syncing loop labels.  This resulted it failing to remove
existing partitions when switching to a loop label.
libparted: give correct partition device name on loop labels

ped_partition_get_path() was returning "/dev/foo1" instead of
"/dev/foo" on loop labels.  This caused gparted to run tools like mkfs on
a device node that did not actually exist.
libparted: don't trash filesystem when writing loop label

If you deleted the fake partition on a loop label, loop_write() would write
the loop signature to the device, zeroing out all other bytes in the first
sector.  When the disk contained an ext[234] filesystem and was using 2k
sectors, this would trash the super block residing in the 1-2kb part of the
sector causing the disk to become unrecognized.  Instead, read the existing
sector and only modify the first few bytes that contain the loop label.
tests: test loop labels

Verify previous fixes to loop labels.
libparted: mac: support sector size > 512 correctly

This patch fixes several problems found when trying to do Apple
Partition Map on a 4K-sector iPod. The problems happened because of
unneeded conversion between physical sectors and 512-byte units.
For devices with sector 512 the conversion did no harm, for others it did.

List of problems (all are gone with the patch):

* Partition in OS X, connect to Linux, run "parted <dev> print".
  "Error: Can't have a partition outside the disk!" is shown.
  Every partition is displayed 8 times (4k/512) bigger its real size.

* Exec "mktable mac", connect to OS X.
  The drive's partitioning scheme is not recognized.

* mkpart creates partitions 8 times (4k/512) smaller than requested.

Signed-off-by: Sergei Antonov <saproj@gmail.com>
gnulib: update submodule to latest

* gnulib: Update module to latest.
* bootstrap: Update from gnulib.
maint: remove doubled word: s/on on/on/

* NEWS: Remove doubled-word detected by "make syntax-check".
maint: run "make update-copyright"