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.


Depends on #1498. 
I have no strong preference here. `not_before` and `not_after` are the typical names, but `not_valid_before` and `not_valid_after` are more descriptive. Anyone else have an opinion?