Initial public key loading work

- [x] I think the use of PKCS8/PEM might be wrong?
- [x] Docs
- [x] Tests (need vectors, where do they come from? Just re-process the private keys?)
- [x] Still a bit too much code duplication
There's no defined serialization for encrypted public keys, and I've never seen support for them in any of the standard tools. There's also no reason you'd want to do this, as public keys by definition are not sensitive data.

The only supported serialization options are the EncryptedPrivateKeyInfo structure for PKCS#8 (only for private keys as the name implies) and a few different flavors of the older PKCS#5 password-based encryption (version 1.5 and 2.0 and a PKBS#12 variant used for some ciphers) for PKCS#1 PEM format with a DEK-Info header that in practice at least also only get used for private keys.