Extensive addition to input handling

Changed Key binding into generic Button binding, which now allows for
GamePads to be bound.
Input Modes for Chat and Settings, including the Settings form, have not
been updated in.