Rebuild fish.pc as appropriate

Re-running ./configure will cause fish.pc to rebuild, in case any of the
paths changed. It looks like this actually won't rebuild the rest of
fish, but figuring out how to handle that is out of scope for this
commit.

More importantly, this will rebuild fish.pc when the version string
changes.
web_config: fix output if no abbreviations defined
Fix typo in abbr documentation

[skip ci]
env.cpp: correctly check variable_can_be_array

Closes #1746.
Rewrite `abbr` function

The usage is still the same, but it's a lot more robust, and also no
longer assumes $fish_user_abbreviations must be a universal variable.

This also fixes the unexpected error output when calling `abbr -a` with
no existing abbreviations.

Calling `abbr -a` with an abbreviation that already exists now silently
overwrites the abbreviation, just like `function` and `bind` do, instead
of complaining.
Fix test breakage from 14724401f

We can't use $PATHS to test the :-splitting because the global config
file adds extra paths based on /etc/paths and /etc/paths.d.

Ideally fish would have a way to suppress behavior like that, but for
the time being it doesn't.
Raise debug level to 2 on annoying Changing language to English message

Fixes #1386
Remove help completion for eval, which doesn't work

Fixes #1379
web_config: send correct MIME type (and actually send it)
Revert "Remove help completion for eval, which doesn't work"

This reverts commit d2f23e1df45f07fb4d716b07c40de7381e539b9d.
Support -h/--help with `eval`

`eval` prints help if given a single argument of -h or --help.

Fixes #1379.
fish_config: Log the path for errors
web_config: Interpret fish output as utf-8

Use the unicode replacement character in place of non-utf-8 sequences.
Rewrite __fish_print_help to produce better results

As a result of this rewrite, the output now:

* Expands to fit the terminal width, like `man` does
* Preprocesses the manpage with `tbl` just in case, since `man` does
  this, even though I doubt any fish manpages use `tbl` formatting.
* Handle bold/underline with the `ul` command as it was designed for
  instead of trying to fake it with `sed`.
* Compresses blank lines as `man` does with the default `less -is`
  pager.
A little extra tweaking so builtin_print_help looks better

The terminal width magic that __fish_print_help learned doesn't help
when builtin_print_help runs it in a subshell. Instead, add an
undocumented --tty-width flag to __fish_print_help that's used to pass
the terminal width.
Add GPL2 LICENSE file

Fixes #1073.
Vagrant completion updates

Improve vagrant completions for some commands to avoid spurious
completions, and add completions for some missing Vagrant commands.

Fixes #1748.
Support space separators for abbreviations as part of #731