Reorganize Block Cipher

In prep for our first stream cipher algorithm (```ARC4```) we need to reorganize our packages. This PR does the following:

* Rename ```cryptography.hazmat.primitives.block``` to ```cryptography.hazmat.primitives.ciphers```
* Rename ```cryptography.hazmat.primitives.ciphers.ciphers``` to ```cryptography.hazmat.primitives.ciphers.algorithms```
* Rename ```BlockCipher``` to ```Cipher```
* Rename ```cipher``` to ```algorithm``` within the ```Cipher``` object
* Update docs

This is done because the ```Cipher``` object can generate a ```CipherContext```, but that is not a block cipher + mode specific object. Instead we'd like the object to be generic enough to create ```CipherContext``` objects from a stream cipher algorithm object or block algorithm+mode combination.