My latest commit redoes the threading when reading a the metadata and file
info for files in a playlist. For some reason, certain files are not
updating properly in the GUI, but I'm sure I'll find the problem shortly.
This is just an idea of how to do things, so if you don't like it please
feel free to revert things back to the way they were done before, but I feel
that this approach is more modular - there is only one small block of code
that handles threading and the rest of the methods are totally ignorant of
their status as threads.