Updates

I've used camcrypt on a couple projects and have found myself writing nearly-identical wrapping code, so I wanted to share my changes with others. There are several changes in here, but since they build on one another it was easier to submit a single pull request.

Summary of changes:
1. Make `encrypt` and `decrypt` work on arbitrary-length buffers, while renaming the original functions to `encrypt_block` and `decrypt_block`. This change is technically backwards-compatible, since encrypting a single 16-byte block should work the same regardless of which function you call; old code won't need to get modified, though if external code is splitting up longer buffers, it can now be simplified.
2. Add some unit tests.
3. Add command line scripts for encrypting and decrypting files from the command line. Run "camencrypt -h" or "camdecrypt -h" for a summary of the options.
4. Allow users to initialize the CamCrypt object directly from the constructor.
5. Raise a clearer error if keygen hasn't been called. Before, it would complain about `self.bitlen` not being defined.