Make FlxKey dedicated to identifying keys. Closes #1164

In this change:
* `FlxKeyInput` typedef is now used instead of the old `FlxKey` for input monitoring.
* `FlxKey` is now an abstract enum mapping enum values and case-insensitive strings to keycodes.
* No need for `keyLookup` anymore. Strings automatically cast to `FlxKey`s.

Essentially this means there is now one way to identify keys (`FlxKey`) whereas before you could either identify keys by keycode, using the old `FlxKey`, or by string with `FlxKeyName`. This removes the inconsistency and need to convert from name to keycode.
This needs some commenting, for example:
```
.concat([for (i in 65...91) i]) // add letters of the alphabet (A - Z)
```