Initial implementation of keyboard callback registration mechanism witho...

...ut boost

Here, I tried to avoid boost library by using c++ function pointers. Also, provided a function on the public interface to register a keyboard callback. It should be noted that callback function cannot belong to a class, yet (i.e. callback function needs to be a global one). That would be easy to do with boost, or std as in C++11; however, std:bind and std:function are not supported by the current version of gcc. Another approach needs to be taken to address that problem.