Implemented AES CBC

* Made the library more modular - new algorithms can be added easily.
* Added documentation to the readme.md
* Implemented AES CBC for all key sizes.
 * 128, 192, 256 bit