Add ECB class + docs + tests

* Slightly refactors test_nist to allow fetching of data that has no IV
* Does not modify create_block_cipher_context (next commit)
add ECB support to create_block_cipher_context

* This is a basic refactor to support ECB and CBC mode in this method.
  We can use this as a starting point to discuss a better solution.
remove unneeded init in ECB class, add warning to docs for ECB mode
add get_iv_or_nonce() methods to replace _get_iv() on api
rename get_null_for_ecb to get_iv_for_ecb per alex's comments
modify modes to use abc so api can determine what attribute to call

* Due to a circular dependency issue I had to put the abcs in
  cryptography.primitives.abc.block.modes
* The ABCs look like they do because that is the form that is compatible
  with 2.x and 3.x
move abc, inline introspect method, use six for abcs

* abc moved to cryptography.primitive.interfaces
* six added to dependencies
* six used to have py2x/py3x compatible abc
* nonce abc removed for now
address style on import + remove a tox dependency (in setup.py already)
Merge pull request #53 from reaperhulk/ecb-support-im-sorry

ECB Support
Cleaned up the docs for ECB
add output feedback mode support + test vectors (aes)
Merge pull request #56 from alex/docs-cleanup

Cleaned up the docs for ECB
change OFB iv to nonce to reflect dstufft nomenclature pitch

* Namely, we should try to call things IV if reuse leaks a small amount
  of data and nonce if reuse can result in a complete break. This can
  be somewhat ambiguous, but we'll track in #58
Merge pull request #57 from reaperhulk/ofb-support

Output feedback mode support + test vectors (aes)
CFB support

This requires a bit of explanation. OpenSSL has methods that implement
standard CFB, 1-bit CFB (cfb1), and 8-bit CFB (cfb8). Unfortunately,
while old (read: 0.9.7) versions of OpenSSL appear to test these
variants, newer versions have a comment stating that cfb{1,8} are
unsupported. Accordingly, I've backed out any support for the variants
for now. We can add it back into the CFB class if and when we gain a
backend that supports arbitrary s for 1 <= s <= block_size
add CFB to documentation
Merge pull request #59 from reaperhulk/cfb-support

CFB support
OFB is specified as having an IV instead of a Nonce.

https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Output_feedback_.28OFB.29
ModeWithNonce is no longer used.
ModeWithNonce no longer exists.