X509Backend support in OpenSSL backend

This PR adds a dependency on `enum34`. I am expecting some improvements to be needed in the docs along with potentially some comments required to explain the purpose of some of the tests.

TODO:
- [ ] Resolve issue with EC public keys where curve name is not set.

Depends on #1498.
```
-----BEGIN CERTIFICATE-----
MIICbTCCAhOgAwIBAgIBADAKBggqhkjOPQQDAjBGMUQwQgYDVQQDEztYWUxJOlpC
M0w6NUpINjpFVVZYOldVS0o6S0w2WTpSSENPOlRFU1k6SVNYTToyWVZFOkZOSFU6
Wkk2UTAeFw0xNDEyMTIwODAyMTdaFw0xNDEyMTMwODAyMTdaMEYxRDBCBgNVBAMT
O1hZTEk6WkIzTDo1Skg2OkVVVlg6V1VLSjpLTDZZOlJIQ086VEVTWTpJU1hNOjJZ
VkU6Rk5IVTpaSTZRMIIBSzCCAQMGByqGSM49AgEwgfcCAQEwLAYHKoZIzj0BAQIh
AP////8AAAABAAAAAAAAAAAAAAAA////////////////MFsEIP////8AAAABAAAA
AAAAAAAAAAAA///////////////8BCBaxjXYqjqT57PrvVV2mIa8ZR0GsMxTsPY7
zjw+J9JgSwMVAMSdNgiG5wSTamZ44ROdJreBn36QBEEEaxfR8uEsQkf4vOblY6RA
8ncDfYEt6zOg9KE5RdiYwpZP40Li/hp/m47n60p8D54WK84zV2sxXs7LtkBoN79R
9QIhAP////8AAAAA//////////+85vqtpxeehPO5ysL8YyVRAgEBA0IABO5cqNMX
U4PWD9x2ffa/B9xvpw3poTOAQYpRHSlGV7JTYuubeZEm2vRRLXA9n1l7+JBffxZC
r+yjS2JHNuq+0kgwCgYIKoZIzj0EAwIDSAAwRQIhAKYoc7Azt/GwTeLFBlhaLpSD
seB3qsN1kdZH4bzylonjAiA9/nVi7fbYydpym5jnW4DpHnenoZcZdWeDVnhE0J4c
WA==
-----END CERTIFICATE-----
```