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