[WIP] initial implementation of symmetric encryption

Now we have to actually write crypto software:

- [x] Implement some crypto
- [x] Use the full NIST test vectors
- [ ] rename `parameterize_*_encrypt`
- [ ] Add validation that the IV given to the mode matches the block_size of the cipher
- [ ] Add validation that we are only ever operating on bytes, unicode is not acceptable