Keyboard Fixes

Implements keyboard_key and also fixes keyboard_lastkey so that they both behave the same as GM8.1, also tested multiple keyboard key combinations and releases to ensure the behavior is implemented properly. Also fixed for XLIB.

Tested on Win32 and XLIB (Ubuntu) with the following code in an object's draw event. I can confirm the changes work on both systems and behave the same as GM as expected now.
```cpp
draw_text(0,0,string(keyboard_key) + ":" + string(keyboard_lastkey));
```

This pull request can be merged.

Note: Ignore the window_center commit, nothing was actually changed yet, I did it then undid it. Waiting to have a further discussion on the forums regarding removing the child window.