GRUB default menu item: distinction between ONIE modes and user menu entries

In order to implement behaviours like 'ONIE rescue mode', where the
box should reboot to the previous menu entry after leaving rescue
mode, make a distinction between ONIE boot modes and user added menu
entries.

At the end of the day the entire GRUB boot process is governed by the
setting GRUB's 'default' variable.

When onie-boot-update runs it sets the 'default' variable by
considering two sources, giving one higher priority.

1. check ONIE-CONFIG/onie_boot_reason -- this is where the ONIE boot
   modes are specified.  If this file exists use its contents as the
   value of the 'default' variable.

2. if ONIE-CONFIG/onie_boot_reason does not exist then use the
   contents of ONIE-CONFIG/onie_default as the value of the 'default'
   variable.

This patch also adds corresponding changes to onie-boot-default.

When specifying the ONIE boot mode (using the -o option)
onie-boot-default creates the ONIE-CONFIG/onie_boot_reason file.
Note: the newly introduced ONIE boot mode "none" does not set a boot
mode, but rather deletes the ONIE-CONFIG/onie_boot_reason file.

When specifying a user GRUB menu entry (using the -d option)
onie-boot-default creates the ONIE-CONFIG/onie_default file.

This means whenver you set an ONIE boot mode with the -o option that
mode will override any user menu entry settings.  The user menu
setting is not removed and will return once the ONIE boot mode is
removed.

Reviewed-By: dustin