Library scanner performance improvements.

For every directory, we were:
* Scanning the directory 3 times (once for hash, once for import, once for
  recursive descent).
* Continuously re-parsing the name-filters into regexps for every call to
  QDirIterator.

This change does one QDirIterator pass over the directory and uses a
pre-compiled QRegExp to check for compatible file names.

On a music collection of 18GB, 5000+ files and 1000+ folders, this produces a
20% speedup on first scan.
Improve language and logic.