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
Unify variable snapshot with variable stack with a new base type,
environment_t. Thread an environment_t through various expansions.
Ultimately this will enable multiple simultaneous variable stacks.

Conflicts:
	env.cpp
Big change to remove env_get_string(). Now all variable fetching must go
through an explicit parser. This also moves us towards having multiple
independent threads of execution.
Eliminate the parser_use_ast switch, which does nothing, and
exec_no_exec, which also does nothing in the new parser

Conflicts:
	parser.cpp
Remove an unused variable and fix a double-free
Merge branch 'master' into variable_cleanup