fix(cgpt): Resize partition even if the filesystem is not.

This is one tiny step towards supporting btrfs.
cleanup(cgpt): Move gpt initialization to its own function.
cleanup(cgpt): Make usage of SYSLINUX 3's custom MBR format clear.

SYSLINUX 3's gptmbr.bin boot sector code uses a custom non-standard way
to identify the boot partition and is incompatible with later versions
of SYSLINUX or any other MBR style boot loader. Restructure things to
make it possible to add support for standard boot loaders.
feat(cgpt): Create generic protective MBR in create command
feat(cgpt): Update protective MBR during resize
fix(cgpt): Show gptprio flags for coreos root and usr partitions
fix(cgpt): Fix broken support for full 64-bit attribute field

The command help text for add claims it can set the raw 64-bit attribute
value but then silently casts the argument to a 32-value which is then
explicitly cast into the upper 16-bits of the attribute field. WTF.

Fix this nonsense and use the full 64-bit value everywhere applicable.
Luckily nothing actually depends on the old broken behavior.
feat(cgpt): Add support for "Legacy BIOS Bootable" attribute

This attribute identifies a partition as bootable via the classic MBR
bootloader scheme. It is used by SYSLINUX >= 4, replacing the custom MBR
header that it used to support for GPT partition tables.
feat(cgpt): Generate hybrid MBR partition table.

If a partition has the "Legacy BIOS Bootable" flag set add it to the
MBR partition table. This replaces the need to use an external tool such
as gptfdisk to create hybrid MBRs for pvgrub and ensures that the MBR
remains valid after `cgpt resize` or `cgpt repair`.

The wonkiest part of this code is just computing the CHS values.
docs(cgpt): Add comment noting references for CHS math and MBR format
Merge pull request #12 from marineam/bootfun

Btrfs tweak and better MBR support for cgpt