We add a generic `PubKeyArray` struct, and typedef both add `PubKey` and `UncompressedPubKeyy` typedefs, allowing us to re-use functions common to both.
This is mostly intended as a struct to encapsulate the bytes of pubkeys and provide nice helper methods.