Begin new GPT implementation for GRUB2

This module is a new implementation for reading GUID Partition Tables which is much stricter than the existing part_gpt module and exports GPT data directly instead of the generic grub_partition structure. It will be the basis for modules that need to read/write/update GPT data.

The current code does nothing more than read and verify the table. Posting this chunk now so that the more interesting features can be reviewed in reasonable sized chunks.

Does GNU prefer `size % 128` or `size % 128 != 0`? I personally like `size % 128` better.