rebase and modify to support some changed behaviors

* Update code to reflect new api object (ffi and lib are no longer private)
* tests updated to take an api object
* skipif marks removed for now as we need to use the api passed to each
  individual test. skip testing done inside the test
* changed name of supports in api to supports_cipher (future PRs will
  contain supports_hash)
diff --git a/tests/bindings/test_openssl.py b/tests/bindings/test_openssl.py
index 85ecc49..e5b78d1 100644
--- a/tests/bindings/test_openssl.py
+++ b/tests/bindings/test_openssl.py
@@ -11,8 +11,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import pytest
-
 from cryptography.bindings.openssl.api import api
 
 
@@ -31,18 +29,5 @@
         """
         assert api.openssl_version_text().startswith("OpenSSL")
 
-    def test_supports(self):
-        assert api.supports("not-a-real-cipher") is False
-
-    def test_create_block_cipher_context_with_unsupported_cipher(self):
-        class FakeCipher(object):
-            name = "FakeCipher"
-            key_size = 24
-
-        class FakeMode(object):
-            name = "CCC"
-
-        with pytest.raises(AssertionError):
-            cipher = FakeCipher()
-            mode = FakeMode()
-            api.create_block_cipher_context(cipher, mode)
+    def test_supports_cipher(self):
+        assert api.supports_cipher("not-a-real-cipher") is False