Remove generic overloads from MessageResponseManager

 - Allows us to test that the tests are actually canceled better.
 - Non-generic versions allows for multiple possible response message
   types.
Make UdpConnection match ResponseTime contract for unsupported
[UDP] Integrate MRM into the send pipeline

This eliminates a race condition between the endpoints where, since the
message was being sent (after moving to MessageResponseManager) before
registering the ID with the MRM, the response might arrive before
registration too. This would result in the response never being seen.
Move NetworkConnection* to MessageResponseManager

Part of this required a regular timer to check for timeouts, so the ping
timer got an overhaul in the process. As a side effect, the ResponseTime
should now be more accurate since it's calculating actual responses.
Add ConcurrentDictionary to WindowsPhone project
Add link to MRM in iOS/WP/Android projects
Add non-generic SendFor to IConnection
Fix MRM access for Windows Phone
Add ConcurrentQueue for Windows Phone