Reduce global variable usage, move to frontend code.
There was quite a lot of duplicate code for loading DetachedSong objects, with different semantics for "securely" loading local files.