Normalize changelog
Bump copyright year
Refactor
Cleanup tests
Use ctype.h's islower / isupper

Closes #1.