Parallelize recursive scan phase of the library scanner.

This uses a thread pool to parallelize the work done in the recursive scan phase of the library scanner.

This also moves file verification work like TrackDAO::verifyTracksOutside into the final, uncancelable phase of the scanner. 

I used 10 worker threads -- this could be make configurable via the preferences.

Hopefully this will help speed up the scan with people who have gigantic libraries. I've heard it takes days for some people and that's just crazy.

A future step would be to replace QDirIterator with native filesystem access. I've profiled the scanner extensively and QDirIterator is by far the slowest part of the scanner. Tobias did something similar in foldertreemodel.cpp when he found that QDir::entryInfoList was extremely slow. People on the Qt bug tracker say that native file access is typically two orders of magnitude faster than QDirIterator.
can put destructor in the header file with {} if it's empty