[WIP] Add unencrypted PEM PKCS8 dumping support

Adds unencrypted PEM dumping for private keys. Public keys and encrypted (PBE) support will be in separate PRs (and PBE requires some discussion. I tried to dig up the issue we've used for this in the past but couldn't find it)
For more prior art, here's how Go does it: https://stackoverflow.com/questions/13555085/save-and-load-crypto-rsa-privatekey-to-and-from-the-disk

You can encrypt that PEM block with http://golang.org/pkg/crypto/x509/#EncryptPEMBlock