[Bug 16334] Fix ConcurrentBag.TryTake and TryPeek

Should return false if no result in all cases

see https://bugzilla.xamarin.com/show_bug.cgi?id=16334
ConcurrentBag staging could become empty

after all items have been removed from a bag, the staging dictionary
is cleaned up but never filled again.
Add Unit tests
Merge pull request #811 from criteo/16334-ConcurrentBag

[Bug 16334] Fix ConcurrentBag.TryTake and TryPeek