Add encoding undefined behaviour.

This is mainly to permit simple implementations of the BAPS3
tokeniser, such as that used by playd.
Update reference implementation names.
Add vim swaps to gitignore.
Clean up compiling instructions.
Move Playlist.AutoAdvance.