lower ciphername, add api supports, improved assertion message

* supports method added to api to check if a ciphername is available.
  This will be used with skipif (and probably elsewhere)
* ciphername lowered. OpenSSL frequently supports aliases for various
  casing, but reliably supports all lowercase.
  (e.g. camellia-128-cbc, vs Camellia-128-CBC)
* When a cipher is not found an error will now be raised telling you
  what string cipher it couldn't find. This should probably become a
  real error like CipherNotFoundError.
Camellia block cipher support

* Tests for CBC, OFB, CFB, and ECB
* Tests will be automatically skipped if camellia support is not present
  in your OpenSSL library (e.g. OS X 10.8 with default OpenSSL)
* Test for unsupported cipher in create_block_cipher_context
* Docs for the cipher
add pytest.ini with flags to show skipped test reasons, revert tox.ini
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)
remove openssl api dependency in test_openssl_vectors

Update some single quotes to double for consistency
change camellia keysize to frozenset to match recent PR
WIP decrypt support
modify BlockCipher to generate Encryption/Decryption Contexts

This is an implementation of dstufft's API proposal.