CP-10445: Add grub2 support
CP-10445: Add grub2 support

Since grub2 configuration files are effectively shell scripts, parsing
the configuration is done on a best effort basis while attempting to
maintain any unrecognized lines. Loading and writing out Ubuntu's grub
configuration results in whitespace changes only.

The implementation also attempts to support two kinds of default settings:
- Setting default to a number, like 0 or 1.
- Setting default to a string, representing the menu entry title.

xenserver/python-libs,xenserver/python-libs