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
That's what I'd recommend, and what I ended up doing in my AsyncSSH API for this. There, I have import_private_key(data, passphrase=None) and import_public_key(data). The key formats supported are PKCS#1/PKCS#8 DER or PEM format for private keys and all of those plus OpenSSH and RFC4716 for public keys.