Fix Visual Studio support
Refactor partitioner detection code
Add some extra assertions to validate function types
Replace the work-stealing queue with a Chase-Lev deque