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
This needs to be documented in `interfaces.rst`. Also, I've never seen an encrypted public key. I suppose you could build one...could we add a vector for that?