added keyboard input

minor refactor for mouse input
* VertexElementDescriptor is now initialized from semantic and the size is deduced

* Added some keyboard and mouse input tests on engine update
* added quit app on shift + f5