Update copyright.
Redesign core cipher code and APIs.

- Make common class/API for block cipher and modes.
- Refactor AES to use new API.
Throw error if no IV is given.
Do not overwrite registered algorithms.
Ensure finish flag is reset on start.
Use new cipher API.
Use new cipher API.
Simplify return value.
Return true from afterFinish.
Return true from cbc pad().
Move start code to startEncrypting/startDecrypting. Set output if given.
Break at 80 chars.
Throw error if decryption fails.
Update docs for AES.
Add keywords.
Bump version to 0.5.0.
Release 0.5.0.
Start 0.5.1.
Release 0.5.1.
Start 0.5.1.