Correct Android button input errors

Prior to this fix, it was impossible to target Android with the dev branch, as `FlxAndroidKeys` had errors. This not only fixes those errors, but also makes `FlxAndroidKeys` much more like its sister class, `FlxKeyboard`. I had intended to make one base class that both could extend, but the large number of type parameters made it unfeasible (for me, at least). Still, that would be a good improvement for the future. 

@joecreates recommended using a combination of `Map` and `Array` for tracking key states, but for now I think that this simpler solution is sufficient, mostly I just wanted to be able to compile my game. :)

Changes:
* `FlxInput` implements `IFlxDestroyable` so that `_keyList` arrays can be destroyed via `FlxDestroyUtil.destroyArray()`
* Added `FlxAndroidKey` class
* Rewrote `FlxAndroidKeyList` to match the style of `FlxKeyList`
* Refactored `FlxAndroidKeys` to match the style of `FlxKeys`
* Objects are now `.push()`ed into `_keyList` and retrieved via `getKey()` instead of using the array indexes to retrieve values. This prevents a bug where Android targets would run at nearly 1 FPS due to the large size of the `MENU` value.
* `InputFrontEnd` can `destroy()` its `input` values
Agreed... How does this even work with non-nullable types like `Int`?