Implement new `read --null` flag

The `--null` flag to `read` makes it split incoming lines on NUL instead
of newlines. This is intended for processing the output of a command
that uses NUL separators (such as `find -print0`).

Fixes #1694.
Add extra logging for interactive test failures
Tweak git completion for aliases/stashes

Use the new `read -z` flag to complete git aliases better. This approach
won't break if an alias contains a newline.

Also fix stash completion, which was broken on BSD sed.
Fix incorrect error on `read` with 1-character input

When `read` is given a single character of input (including the
newline), it was bailing as if it had been given no input. This is
incorrect.
Add wcstringutil to the OS X build
Only print fish_greeting for interactive shells

Shell scripts that use `read` should not trigger fish_greeting.

Fixes #1401.
No need for mbstate_t to be static
R_MAX should be R_CANCEL now
Allow U+F8FF to be typed

U+F8FF is the last character in the private use area, but it's also the
codepoint used for the Apple symbol (), which is typeable on US
keyboards in OS X, and so should actually work.
Add --right-prompt flag to read

Add a flag to read to allow for setting the right prompt command in
addition to the existing support for setting the prompt command.

Fixes #1698.
Support wide characters in printf %c
Add wcstringutil to the OS X build for tests target
Allow running executables with $ in their name.

Fixes #1686
Don't suppress output for `printf --help`

Fixes #746.
Remove INTERNAL_BUFFER, which was only used by fish_pager
Remove a redundant ivar set
Show -M and -m flags in bind list
Stop overriding <em> in user documentation

<em> used to represent something else, but as far as I can tell, all
uses of <em> in the documentation today actually represent text that's
supposed to be visibly different. Notably, the documentation on
supported escapes uses <em> to indicate the letters that are a
placeholder for e.g. a hex digit, as opposed to being a literal
character.
Support -k with `bind -e`

Also return an exit code of 1 if `bind -k` can't match the key name.
Update `bind` documentation

Document all the `bind` flags, including modes.

Fixes #1663.