Multithread conflict detection

Allow for the option of using multiple threads to check for conflicts.

This requires that each thread have it's own copy of the repository, so there is
a space:performance tradeoff here.

It is also recommended to store the repositories on different physical volumes
and symlink them into the local repo directory to avoid disk thrashing.