fix libressl error/refactor some error handling (#3609)

* add libre so I can see the error

* add the libre error needed and refactor error handling a bit

We were historically matching on lib + func + reason, but func is
somewhat unstable so now we match on lib + reason only. Of course, in
this case libressl changed both lib and reason so it wouldn't
have mattered. All error handling from the error queue in
openssl is an illusion

* fix a typo, probably an unneeded branch

* review feedback

* refactor tests to support libressl

insert additional rant about libre here, although admittedly these tests
were assuming stability where openssl itself guarantees none

* better assert, fix flake8
diff --git a/Jenkinsfile b/Jenkinsfile
index 6cdf162..a45d0b4 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -55,6 +55,11 @@
     ],
     [
         label: 'docker',
+        imageName: 'pyca/cryptography-runner-jessie-libressl:2.5.4',
+        toxenvs: ['py27'],
+    ],
+    [
+        label: 'docker',
         imageName: 'pyca/cryptography-runner-ubuntu-xenial',
         toxenvs: ['py27', 'py35'],
     ],