gpt: start new GPT module

This module is new implementation for reading GUID Partition Tables
which is much stricter than the existing part_gpt module. This will be
the basis for modules that write/update GPT data.

The current code does nothing more than read the table, it doesn't even
give the read data to the caller. It does appear to work and includes
basics for unit testing GPT related code.
gpt: use backup table when primary is corrupt