Lots of nightly fixes (and GPIO -> Gpio)

I hadn't intended the `GPIO` to `Gpio` change to be part of this set but until it seems that it crept in to my base branch, unnoticed until went to create this pull request. I would try rebasing it away but I strongly suspect that conflicts would result. After spending the last two hours qualifying enums I'm not terribly inclined to do this.

Thanks to @0xc0170 for the starting point and prodding me to finally undertake fixing this mess.