Cipher changes and Salsa20

* Slightly modified design of `Cipher` datatype to exclude mode as stream ciphers like Salsa20 has no concept of mode. Modes are just meant for block ciphers.
* Improved and added tests for gadgets with inverses.
* Added parser for ECrypt style test vectors.
* Salsa20 (Including variants 20/20, 20/12 and 20/8) Haskell version with tests.
* Salsa20 (with variants) CPortable version with tests.
* Salsa20 Benchmarks.
* `sizeOfBuffer` from `Bufferable` class name is changed to `maxSizeOf`.