We add a generic `PubKeyArray` struct, and add `PubKey` and `UncompressedPubKey` 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.
Note that the current implementation allows users to write `PubKeyArray<1337>`, which is not intended usage, but specifying pubkey size manually outside of the pubkey.rs file should be discouraged.