Allow higher frame rates by using a new approach for framebufferUpdate requests

Instead of incorrectly using timers and sending new fbu-requests continiously when the mouse moved or when a key was pressed, this fix makes noVNC follow the RFB protocol and keep only one outstanding request at a time. A framebufferUpdate request will only be sent after a full framebufferUpdate has been recieved.

The screen area will be updated as fast as network allows. For administrative tasks when there are less updates, the framebufferUpdate request will simply block until there's new data, and the bandwidth will go down. Same principle goes for CPU usage.

Fixes issue #221.