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.
Is there any reason that can't just be parsed with strptmie? Going through a public API would make me far more comfortable than needing to case netween `ASN1_GENERALIZEDTIME` and `ASN1_STRING`