Minor cleanup of redirection functions
Eliminate the parser_use_ast switch, which does nothing, and
exec_no_exec, which also does nothing in the new parser
Remove the now-unused parser_t::job_create
Remove the close_old field from io_fd_t, which is never actually
respected - a bug dating back to fish 1.x! The fd that would be closed
is actually closed in io_cleanup_fds().
Simplify threading implementation. Removed iothread array. Threads now
run detached (no more pthread_join), and will not exit until they see
that all requests have been dequeued.
Reduce the iterations in the iothread test to something more reasonable.
Remove an unnecessary lock.
Remove a debugging statement (oops)
Set fish_vi_key_bindings to start in insert mode by default

Add optional argument for fish_vi_key_bindings to set desired initial
mode:
> fish_vi_key_bindings default
added docker completion file
functions on top
Remove useless return.
Migrate universal variables to env_var_t structure. Encapsulate
universal variable storage into a class for better testability.
Migrate machine and hostname identification from fishd.cpp to
env_universal_common.cpp, so that fish can use it
Fix filehandle leak in proc_get_jiffies
Beginning steps towards teaching the universal variable system to read
the fishd file directly, instead of fetching it through fishd
Implement atomic loading/saving of fishd file within fish, eventually
permitting removal of fishd. Universal variables test passes, others
fail.
Correctly invoke callbacks with fishd-less universal variables. All
tests now pass.
Attempt to silence some warnings
Silence unused return value warning in FATAL_EXIT
Squelch some more warnings on Linux