Send ACKs to the connection waiting on the ACK not the acker itself

- These ACKs are used to verify that commands published to the
  bus have been received and processed (e.g. group commands).
- Previously, ACKs only succeeded if the waiter and acker were on
  the same machine and/or the acker happened to be the waiter.

#3037
SmallBigData - allowing messages longer than 32766 characters

Fixes work item #3040

Non .NET Framework 4 clients used the FormUrlEncodedContent class to escape messages sent by clients. This limited the length of the message to 32766 characters. For longer the client would fail with the invalid uri exception saying "The Uri string is too long". The messages are not actually Uris so we don't care about the length. The fix is to use a custom UrlEncoder we already have which is functionally equivalent to Uri.EscapeDataString() but will not throw if message is longer than 32766 characters.