core: fix pointer caps, slowpath kbd and a gcc fix

* According to MS-RDPBCGR 2.2.7.1.5 the pointerCacheSize is optional and its absence or a zero value indicates missing client support for  the New Pointer Update.
* Fixed and added some comments regarding the meaning of the KBDFLAGS_DOWN  keyboard flag and how it is currently used in the code.
* The slow path keyboard input now generates the same keyboard flags as the corresponding fast path code.
* Some arbitrary value was used for the ConnectPDULength in the GCC Conference Create Response. According to MS-RDPBCGR 4.1.4 this value must  be ignored by the client so we encode a zero value instead.