Merge branch 'master' of github.com:fish-shell/fish-shell

Conflicts:
	share/functions/prompt_pwd.fish
Use `source` instead of `.` in autoload.cpp.
Remove an unnecessary parse pass in highlight.cpp (oops)
Move cursor back on insert mode exit.

Make this consistent with vi.
Bind 0 to beginning-of-line in vi mode.
fix gem --version/--help tab completions
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