[songs] Make parsing errors more constructive.
[songs] Some additional whitespace stripping.
[songs] Minor.
[songs] Rewrite the transposer and add doctests.