Fix ws binary/base64 subprotocol priority
The problem is when the client advertises "protocol": ["binary", "base64"], the server picks base64. The server should prefer the first one.
It's an issue when the client had this configuration as a fix to the 400 Client must support 'binary' or 'base64' protocol error with noVNC and old websockify + VNC: https://github.com/novnc/noVNC/issues/1276#issuecomment-564677833 . Today it seems that noVNC doesn't do base64 any more. Although it's now incorrect for the client to advertise both protocols, it's not intuitive that "protocol": ["binary", "base64"] doesn't work while "protocol": ["binary"] does.
Relevant PR/issue:
https://github.com/LibVNC/libvncserver/pull/342
https://github.com/novnc/noVNC/issues/1310
@VelorumS: Have you progressed on your PR?
@Neustradamus I've responded to the review, haven't heard anything since.