Minor tweaks to initial keybinding load

Remove comment that AFAICT is not true anymore.

Ensure someone setting __fish_active_key_bindings as a universal
variable doesn't screw up the initial keybinding load.
Rewrite fishscript testrunner for better output

Update the fishscript testrunner to use the same output style as the
interactive testrunner.
# This is a combination of 2 commits.
# The first commit's message is:

Simplify default fish_prompt

No need for the set_color caching now that it's a builtin.

Also simplify the 3 classic prompts in fish_config's sample_prompts set.
Use ENV_USER with vars set via `function -a`

ENV_USER is intended to be used when setting any variable whose name is
controlled by the user. The names given to `function -a` certainly
qualifies. This wasn't an issue in practice because the only restriction
ENV_USER imposes is also imposed on ENV_LOCAL, but the rules may change
in the future.
Add new `functions` flag -V/--inherit-variable

--inherit-variable takes a variable name and snapshots its current
value. When the function is executed, it will have a local variable with
this value already defined. Printing the function source will include
synthesized `set -l` lines for the values.

This is primarily useful for functions that are created on the fly, such
as in `psub`.
Update psub for the new --inherit-variable flag

Also do some minor formatting cleanup, make psub return 1 when executed
outside of a command substitution, and make it respect $TMPDIR.
Clean up prompt_pwd with the new function -V flag

Also fixes `cd /private` displaying as no path on OS X.