Tab completion

Completion of callsigns and commands with the `tab` key.

Repeatedly pressing `tab` will cycle through the current matches for the aircraft or command. In case of an aircraft, it is highlighted on the map/sidebar accordingly.

Currently an incomplete callsign/command is valid as long as it is unambiguous. This PR *does not* change that, it just adds additional completion and cycling through ambiguous matches.
The only actual change to aircraft.js is moving `COMMANDS` outside `runCommand` so it is accessible from input.js.
The diff shows a lot changes, but it is just that.