Keybindings rework3

New API functions for keybindings that have a userdata pointer. This is needed to allow for potential non-C plugins to store context information (e.g. this pointer for object instances).