Fixed: Shift keys are not sent to clients

I have a working fix for Issue #4055.  I've been running it for a few days now and it has been working reliably.  I did notice on a couple of occasions keystrokes intended for the server screen being dropped, but I have not been able to replicate this since I last experienced it.

I have not tested it this on a server platform other than Windows 8.1 with all updates installed.

     
0x80 means the key is down.  The least significant bit once upon a time meant that the key was pressed since the last call to GetAsyncKeyState(), although "The behavior of the least significant bit of the return value is retained strictly for compatibility with 16-bit Windows applications."

A return value of 0 means that either the key is up or that GetAsyncKeyState is unwilling to divulge the key state due to security concerns.  Since the Windows updates that created this issue, GetAsyncKeyState always returns 0 (or 1, but the high bit is never set) when synergy is on a client screen.  Hence the need for a global key state array.