Add input event support to event engine.

Summary: This adds support for firing input events in the engine when the user interacts with the keyboard or mouse.

Test Plan: N/A, just review the code.

Reviewers: Sabre070

Reviewed By: Sabre070

Differential Revision: http://code.redpointsoftware.com.au/D85