Added stress test to ConcurrentQueue.TryPeek.
The test checks that in some race condition the queue does not return null.
Changed TryPeek to handle race condition with Dequeue.
Dequeue sets the head.Value to its default. When TryPeek is interrupted in the process of retrieving the value some times Dequeue sets the value to its default. TryPeek now checks the head has not been changed before returning the value.
Merge pull request #1074 from esdrubal/bug18421

Changed TryPeek to handle race condition with Dequeue.