Fix crash with threaded file loading.

Although Qt protects access to functions in the GUI thread (where I was
seeing crashes in the new threaded file loading code in some
situations), as long as you use signals/slots, Qt Concurrent doesn't do
anything to keep your non-GUI threaded code from trampling on each
other.

Which is obvious enough, in retrospect, but that seems to have been the
reason for the crashes I was sometimes seeing (TagLib and/or FileHandle
not being thread-safe).

The immediate bugfix is to serialize access into FileHandle/TagLib file
reading code in DirectoryLoader, though I also did some cleanups in the
process of debugging that I think are worth keeping.
3 jobs for master in 9 minutes and 5 seconds (queued for 1 second)
Status Job ID Name Coverage
  Build
passed #1378
flatpak
flatpak

00:09:05

passed #1377
freebsd
freebsd kf5-qt5 qt5.12

00:07:07

passed #1376
linux kf5-qt5 qt5.10

00:06:10

2.0%