Prevent connection "freezes" in WebSockets

- A healthy socket can become corrupted after a JSON serialization error
- If the socket isn't then closed by the server, the client will miss  all
  subsequent messages including keep-alives causing the connection
  to freeze until it times out.
- By closing the socket on the server, the client will reconnect immediately

#2800
Test ensuring the server closes WebSockets on serialization failure

- Only applies to Hub return values which aren't pre-serialized on the bus

#2800
Changed Web Socket implementation to not send an empty frame at the end

#2777
Made changes as per code review feedback

#2777
Make the max client-to-server WebSocket message size configurable

- The max message size can be set/disabled via the IConfigurationManager

#2774
Functional tests to verify MaxIncomingWebSocketMessageSize

#2774
Merge branch 'release' into dev