Initial public key loading work

- [ ] I think the use of PKCS8/PEM might be wrong?
- [ ] Docs
- [ ] Tests (need vectors, where do they come from? Just re-process the private keys?)
- [ ] Still a bit too much code duplication
PKCS#1 is only defined for RSA so it's probably not really that either.

We could probably do something that attempts to just figure out what it's meant to be doing from what you throw at it. It would at least make naming things a bit easier but I think we'd still need specific loading methods for each format in the backend interfaces.