Added concurrent deque with locking at both ends and used it in Parallel.h.
Trying to fix deadlock issue
Returned to locking both ends at once. Only locking one end didn't work when tried the previous way
Reverted to queueing work before starting workers to reduce contention
Merge branch 'feature/DoubleEndedDequeLocking' into develop