split backend up (refs #170)

* Moves cipher methods into a Ciphers class and hash methods to a Hashes
  class and makes them available inside Backend as pluralized
  attributes.
* Shortened many of the methods since their purpose is now defined by
  their container class
diff --git a/tests/bindings/test_openssl.py b/tests/bindings/test_openssl.py
index bdfbed3..6f9c9d2 100644
--- a/tests/bindings/test_openssl.py
+++ b/tests/bindings/test_openssl.py
@@ -34,8 +34,8 @@
         assert backend.openssl_version_text().startswith("OpenSSL")
 
     def test_supports_cipher(self):
-        assert backend.supports_cipher(None, None) is False
+        assert backend.ciphers.supported(None, None) is False
 
     def test_register_duplicate_cipher_adapter(self):
         with pytest.raises(ValueError):
-            backend.register_cipher_adapter(AES, CBC, None)
+            backend.ciphers.register_cipher_adapter(AES, CBC, None)