Add support for x86 DIAG partitions

Reviewed By: dustin

This patch adds support to x86 ONIE for handling an external DIAG OS
that resides in its own partition.  The DIAG OS is installed just like
a NOS, with a few additional requirements.

For ONIE the main place where the DIAG OS partition matters is during
the "OS uninstall" operation.  ONIE needs to be careful and not remove
the DIAG OS during this operation.

The requirements of a DIAG OS installer follow.  The "OS uninstall"
operation depends on these requirements being met.

- Install the diag OS into it's own partition.

- When the machine's partition table is GPT:

  + name the diag partition "<SOMETHING>-DIAG".  See the man page for
    sgdisk(8) and the --change-name option.

  + set the GPT 'system partition' attribute bit (bit 0).  See the man
    page for sgdisk(8) and the --attributes option.

  + when creating the file system on the diag partition set the file
    system label to "<SOMETHING>-DIAG", the same string as used for
    the GPT partition label.  See mkfs.ext4(8) and the -L option.

  The "-DIAG" suffix and the 'system partition' bit is how ONIE
  recoginizes that the partition is a DIAG partition.  This
  information also helps a NOS installer recognize the partitions as
  "special" and leave them alone.

- When the machine's partition table is MSDOS (please no one use MSDOS
  partitions):

  + All we can do in this case is use the file system label.  When
    creating the file system on the diag partition set the file system
    label to "<SOMETHING>-DIAG".  See mkfs.ext4(8) and the -L option.

- When installing the diag image, install GRUB into the MBR, just like
  the demo OS does.

- Also install GRUB into the diag partition.  This will allow a NOS to
  "chainload" the diag OS.

- The grub.cfg for the diag partition should contain all menu entries
  the diag OS needs, plus one entry to chainload ONIE.

When provisioning a machine in the factory the order of operations
would be:

1. Install ONIE on the machine

2. From ONIE use any of the regular NOS install methods to install the
   DIAG OS.

Testing Done:

Using the x86_64 virtual machine exercised:

- installing ONIE

- installing a demo DIAG OS

- installing a demo NOS

- invoking the OS uninstall procedure and verifying the demo NOS was
  removed, while leaving the DIAG OS intact.