Process blocks instead of bytes.

The cipher and modes where processing byte slices, now it has been
switched to processing blocks - instances of State.

Bytes are read from input, converted to State instances, and stored
in the input buffer. After being processed they are stored in the
output buffer, when flushed they are converted to bytes and stored
in the output.

Padding and unpadding has been moved from the get and put block
functions to the functions that fill and flush the buffers.

Additionally converted most of the functions and constants to use the
uint64 base type for numbers, exported the `high` and `low` fields for
a State, and made the basic encrypt/decrypt test process more than one
block because it was not catching a bug with CBC mode that occured
beyond the first block.