Add `InputState` class and refactor default input implementation
Resolves godotengine/godot-proposals#104. Resolves godotengine/godot-proposals#100.
This is a concrete implementation of the new InputState
class which aims to expose the internal Input
state for low-level access. More info in the linked proposal.
Waiting for green light before I can continue working on this, but currently this implements most logic.
If the proposal is not accepted, I'd like for anyone maintaining this part of the code to allow to override the default InputDefault
implementation via modules or similar as it doesn't seem to be trivial to do at the moment, in spite the name suggesting otherwise.