Added C# wrapper around work tracking queue

Also fixed state bug
Ensure WorkTrackingQueue deals with items that have no groups

Started using FsCheck and Xunit
Tidying FsCheck test
Add a performance test
Split GroupingBoundedQueue state into it's own class
Fix the constructors for WorktrackingQueue