In order to allow mkimg(1) (and other tools) to become a build tool that can be compiled on various OSes (including on older versions of FreeBSD), make it possible to have them include the scheme definitions without pulling in FreeBSD specific definitions. In particular this means:
- moving the portable scheme definitions to header files under sys/disk
- not including other system headers
- replacing u_int*_t with uint*_t throughout.
Since UUID/GUID type definitions are non-portable, make it possible to use any (valid) type by setting GPT_UUID_TYPE to the type used on the build machine. When GPT_UUID_TYPE hasn't been defined, use "union gpt_uuid" as a generic substitute.
More consistently have the BSD scheme use the BSD_ prefix for defines. There should be no conflict between the headers, making it possible to include them all in the same file
note: consumers of the old headers have not been changed yet. Such will be done in followup commits