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
err https://github.com/pyca/cryptography/pull/1233/files#diff-4 ?