Grub Update

This patchset brings grub up to the 2.02 beta release. This version of grub now supports most of the features in the zfsonlinux project allowing it to boot directly from root zpools. I also refactored install-grub.pl so that it understands how to search for zpools and btrfs volumes. Additionally a feature was added to allow users to force grub into locating disks by uuid or label.

This still needs extensive testing. I plan to add nixos tests for a variety of different edge case configurations. For now I just wanted to get this out for feedback.
Because grub doesn't actually return an error string in the cases I need to know it failed, therefore relying on the exit code of the application. In hindsight, I could have used ${^CHILD_ERROR_NATIVE} to grab the return code, I just don't really like the fact that I am retrieving a global variable for the return status.