Rebuilder

What's New:

UI
- added: #thread selector
- added: scanner, Clipboard->Copy Machine Names option
- fixed: rebuilder log Copy To Clipboard misses linefeed

Core
- added: you can define a thread pool size which is used for parallel scanning rebuilding/etc. Either you keep auto (default value) or pick the number of threads used for the pool yourself. "auto" picks a high value when you work with compressed files and a low value when using decompressed ones. A low value is better when you run into file seek overhead issues. If you're not happy with auto, you can try to tweak it yourself.
- fixed: scanner and rebuilder ignore output path, mergemode, pattern changes when xml data hasn't changed
- misc: more effective reimplementation of thread pools and thread queueing
- misc: prefetching sha1s on an archive if needed (speed increase, espically for archives with lots of files)
- misc: rebuilder: major update / reworked internal logic, less complex, way smaller memory footprint especially for dats out of hell (dats with thousands of dupe files), faster.
- misc: scanner, smaller memory footprint and speed update for "dats out of hell"
- fixed: scanner, accidently getting a crc32 on sub folders showing an error
- fixed: scanner, detection of unnneeded empty sub folders failed
- fixed: scanner, using old archive name when trying to remove some unneeded files causing can't remove files/can't access messages
- misc: updated bit7z to 4.0.9
- misc: updated pugixml to 1.15
- misc: use "-" instead of "_" for replacing illegal file chars (cmpro align)
- misc: monitoring hash folder for -listsoftware exports. In case of a change, cached data is ignored and a new export is generated. This is more for users which update their hash folders during the development phase of MAME on a regular basis and don't want to recompile the binary.
- misc: use one version number, fixed a tooltip typo ;-)