Refactor out tab completion into TabCompleter.cs
Refactor all remanining console code out of main
Fix escape key
Make home and end keys work
Refactor out each action for each key into its own function
More refactorings