Validate the IV/nonce length for a given algorithm.

Fixes #159

TODOS:

- [x] Figure out if `CTR` is correct
- [x] Figure out what `GCM` should do
- [x] Test for GCM
- [ ] General API sanity review