It seems expect prioritizes the first pattern in the list, instead of the pattern that matches earliest in the buffer. That seems pretty stupid, but let's try moving the prompt pattern to the end and see if that fixes the Travis failures.
Also avoid resetting bindings if fish_key_bindings is "modified" without actually changing. Fixes #1638.
Add a test harness that uses `expect` to drive Fish to test interactive behavior. Include some tests for `read`.