1. Handle page up / down for scrolling terminal history
2. Handle repeat keypresses, so e.g. holding pgdn will scroll
3. _input is passed a single event, so we save some CPU cycles by using
`elif` for all branches
It uses a Perl script to keep a bash session open, which attaches to a
port the game keeps open. This avoids having to start a new Git bash for
each command, improving the execution speed by a factor of 3-4.
This is a first workaround for the problem that editors are sometimes
out of date. The UI around these will probably continue to change
significantly. Closes#7.