Create structure to hold data related to the crypto stuffs & move the appropriate data there.

This is intended to separate args from crypto data and keeps the main function clean.
Add stuff for creating an initialization vector.

This includes:
1) adding data values to the crypt_data_t structure
2) adding a function to create the IV
3) change program function to add IV to beginning of encrypted data

The decrypt operation will need to take the IV off the front of the
encrypted data.  This seems to be the way that other people do it?
Make IV the same size as the key.

I'm planning on using AES and from what I can tell with AES,
key size == block size == IV size.
Add complementary iv_read function to extract IV from encrypted data before decrypting.