Enable tracking of repeated consecutive keystrokes

Detect and count the number of repeated, consecutive keystrokes within the keymaps.  This supersedes the REPL's own counting of consecutive returns to abort an incomplete AST entry within its on_enter done-check with a more general implementation. The on_enter functionality is very minutely different -- instead of checking for three consecutive newlines, this checks for three consecutive keystrokes that call the return callback (so, e.g., alternating between ^j and return won't trigger this).  But for nearly all use-cases this behaves the same.
Consecutive kills append to the kill buffer

When the same keystroke is used to repeatedly call edit_kill, the killed text is appended to the buffer instead of replacing it.
Only show completion options on the 2nd tab-press

Instead of the current complete-or-show-possible-completions behavior, this now requires a second consecutive tab press to show the possible completions. This behaves a little bit more like most shells, and prevents excessive printing of options in most cases.
Use repeated keystrokes for move_line_start/end

Jump to the start/end of input upon a repeated keystroke instead of detecting that the cursor is already at the beginning or end of a line. This way the behavior changes based purely upon the input instead of relying on where the cursor happens to be.
Add tests for kill/yank and move_line_end/start

Fix a discovered inconsistency in the behavior of move_line_start.

Test with repeated inputs.
allow resetting a TTY's eof state to keep reading. fixes the second issue in #6523
add UVServer to isopen() signature
add more jlapi functions to julia.h. closes #7336
formatting changes
fix #7303, return from nested try/finally
Fix #5712
In REPL test, do not use history

Otherwise the test input ends up in your history file.
Merge pull request #7043 from mbauman/repeated-keystrokes

RFC: Track and make use of consecutive keystrokes in the REPL
Move FakeTerminal to TestHelpers
Merge pull request #7330 from JuliaLang/jb/tty_reseteof

allow resetting a TTY's eof state to keep reading
bump libuv

should fix #6523
this also brings in the change to use vfork
Merge branch 'master' of github.com:JuliaLang/julia
tweaked middle to ensure middle(x) and middle(x, x) have the same type (with tests)
Merge branch 'master' of https://github.com/JuliaLang/julia
fix case in testhelpers.jl file name