Add a base class for Algorithms

Since they are all using the same functionality.

The only assumption really is that a cipher has a key and valid key sizes, so I don't think inheritance is too limiting a relation here.

Can rebase on ARC4 if that comes in