WSRespSource refactor

The actual WebSocket response creation is moved to an internal method.
The new arrangement is useful if a single IResponseSource is to handle HTTP
and WebSocket requests on the same resource.
This also fixes the behavior of websocket error logging. From now on,
failing to create an IMsgHandler object in CreateMsgHandler() will cause
a failure to be logged.