Queue & dispatch all receives in the client
- This ensures that calling stop from a message receive doesn't deadlock the receive loop
- Using TaskQueue.cs so added that to client projects
- Had to modify TaskQueue to work in Portable, now do optimistic increment then unwind if we exceed the max size
- Added a test to verify that async connection start, invoke, stop works without dead-locking
- #2653
Ensure receive queue drained on close
- Drain the receive queue when Stop called
- Raise connection error event if queued OnReceived callback throws
- Remove obsolete buffered messages tests
- #2653
Fix fxcop error
- #2653
Remove obsolete code & reinstate hub required for JS test
- #2653
Add missing build directive
- #2653
Removed duplicate call to start from failing test
- Will log a separate issue to track the reason why this causes the failure
- #2653