Refactor block and stream tests to run loops inside the test library

This is done to be able to do tests inside the loops
Add PKCS7 padding scheme

Also refactored factories tests
Add a new test in BlockCiphers to make sure that no more than blockSize bytes are written to the output buffer
Refactor registry (fixes #24)

Allow dynamic factories for chaining algorithms. Also remove factory typedefs and named constructors of ciphers, digests, etc. Now all algorithms are created by standard name and the strategy is implemented by factory functions in the implementation.
Rename RIPEMD160 to RIPEMD-160
Add PaddedBlockCipher to allow chaining: block cipher/mode of operation/padding (fixes #27)