Basic input system

Generic input system (currently only keyboard supported)