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.
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
Merge branch 'master' into variable_cleanup

Conflicts:
	parser.cpp