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.
Update tests
Merge pull request #99 from rschlaikjer/multithread-conflict-detection

Multithread conflict detection

Give more workers to the merge conflict detection system to parallelize the work.
Each worker owns its own workspace which has a copy of the main repository. Nothing is shared at the moment.
Track queue worker pids and kill on exit

When spawning the queue worker processes, keep a list of their process IDs
and write them to the pidfile.

When exiting, send SIGKILL to the queue worker processes.
Merge pull request #98 from rschlaikjer/kill-queue-workers-on-exit

Track queue worker pids and kill on exit

All workers and threads need to be managed by pushmanager so they can be killed properly.