Make sure MsmqWorkerAvailabilityManager is thread safe on .NET 4 in NSB 3.3.9

MsmqWorkerAvailabilityManager.ClearAvailabilityForWorker() throws "System.InvalidOperationException: Property ResponseQueue was not retrieved when receiving the message. Ensure that the PropertyFilter is set correctly" if you put some stress on it with NSB 3.3.9 on .NET 4+.

The problem is that Microsoft made almost everything on MessageQueue NOT thread safe between .NET 3.5 and .NET 4. 

3.5 docu: http://msdn.microsoft.com/en-us/library/system.messaging.messagequeue(v=vs.90).aspx vs
4 docu: http://msdn.microsoft.com/en-us/library/system.messaging.messagequeue(v=vs.100).aspx

Those changes by Microsoft makes the MsmqWorkerAvailabilityManager implementation in 3.3.9 not safe, as it needs locking to work. The proposed fix, which fixes the repro, is basically to revert  @7de28f8f1dbfdf39a810800b841b0df49f02aac6. Bad luck on that one, @andreasohlund. :)

Check out repro, available [here](https://github.com/janovesk/nsb-msmqdotnet4bug).

Hi John!

Sure, go ahead. I dare you. :) I actually thought so as well and wrote it like that initially, but it doesn't work. In addition to "System.InvalidOperationException: Property ResponseQueue was not retrieved when receiving the message. Ensure that the PropertyFilter is set correctly." you also get "System.InvalidOperationException: Message requested was not found in the queue specified." if you try that. 

I'm not really sure why this happens, but I have theory that MessageQueue uses some kind of caching internally that reuse Message instances for the same message. So while the GetAllMessages() call itself is thread safe, the actual messages you get from it are NOT.(Only static methods on Message are thread safe). If you ever get the SAME message instance from two calls to GetAllMessages() and access anything non-static(like Id) on it from more than 1 thread, you might get in in trouble. Pure speculation, but I've been unable to get GetAllMessages() outside the lock as long as the there is an ReceiveById() inside to work. :(