Suppress PATH errors in sudo tab-completion

Setting a non-existant path component to PATH logs an error to stderr.
This is not appropriate for non-interactive temporary modifications,
like the one done by the `sudo` completion helper function.
make_tarball: build from the current checkout, ignore Travis
Clean up typos and style in design doc

This includes:

- Fixing some typos and misspellings
- Being consistent with pronouns (she/he)
- Hyphenating "built-in" and "command-line" where appropriate
Cleanup fish tests a bit

Split `make test` into two targets `make test_low_level` and `make
test_fishscript`, primarily so fishscript tests can be rechecked quickly
after edits.

Reformat the test.fish file and update some of the code to be a little
more straightforward (e.g. `if not cmd` instead of `if cmd; else`).
Add a test harness for interactive behavior

Add a test harness that uses `expect` to drive Fish to test interactive
behavior.

Include some tests for `read`.
Disable fish_title on interactive tests

This was apparently what was interfering with the tests working on
Linux.

Tweak .travis.yml to install expect so the tests run on Linux.