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`.