new event format; class DeviceInput is separated from EventProvider
adding unit test for EventProvider
update DeviceInput to use fully the new EventProvider; adding unit tests
update mouse and keyboard devices for use new event system
adding keyboard disable repeat key feature
upgrade InputMapper to use new event system; adding unit tests for InputMapper
adding predicate args to InputMapper