Fixes misleading "connect: Connection failed" message on start up

When launching the first instance of fish and fishd is not launched already, this should not be considered an error as long as it can be launched. So ignore the first failure of connect(), as the calling function get_socket() will try again. May need a bit of cleanup.
Fix modprobe completion for newer modprobe versions
Do not show files in modprobe completions
Use fish from $__fish_bin_dir while calling fish_update_completions at startup
Cast timestamp before using it for formatted string.

time_t doesn't necessarily have to be a long number. In fact, manpage
for types.h mentions it can be a double value.
Large cleanup and refactoring of unescape() function.
Remove old unescape() function
Cast size_t to unsigned long.

printf expects unsigned long (%lu) argument, however, size_t doesn't
have to be declared as such. As %zu is C99 (but not C++), it shouldn't
be used directly. Instead, I have to cast value to the correct type.
Ensure the loop in offset_of_next_item_fish_2_0 is executed.

This ensures that timestamp will be initialized.
Fix io_buffer_t::print to take unsigned long argument.
Fix %lu for size_t in fish_tests.cpp
cd completion: handle not accessible directories
Fix indentation in __fish_complete_cd
Do not open CLI browsers when using fish_config.

From the Python webbrowser documentation:
"If text-mode browsers are used, the calling process will block until the user exits the browser."

Running fish_config on an ssh server with no GUI browser will open a CLI browser which blocks and stops the server from handling requests.
Using multiprocess to run the server in the background lets CLI browsers access the page, but the page is unusable.

For now, disable CLI browsers and recommend opening the page in a graphical browser.
In the future, maybe write a CLI utility to change prompts and delete history items.
Update brew completion with new options
On short prompts, commands wider than the terminal do not reposition to start on their own lines.
Fix wide character wrapping.

The intention of the block removed appears to be to indent wrapped lines to the column the line started at. What actually happens is that all wrapped lines wrap to column 0.
After adding the sticky short prompt feature, the block removed caused a bug with wrapping wide characters in addition to not appearing to change anything else.
Wide characters would change between wrapping to column 0 and the column the command started at, depending on what column the wide character was at before wrapping.

I am keeping the existing behavior rather than restoring the block's original intention. If the original intention should be restored, it should be on a different branch.
Fix support for backslash-newline in double quotes in unescape functions. Makes tests pass
again.
more detailed debugging when terminal type cannot be found

Ref: #1060
fall back to ANSI terminal type if setupterm fails

Closes: https://github.com/fish-shell/fish-shell/issues/1060

'ansi' should always be present (tested on Solaris, Linux, FreeBSD,
Darwin).

Also overrides TERM so that other programs behave consistently e.g.
fish_pager.

The error message makes no specific mention of terminfo or termcap as
these vary across operating systems.

(r+ @ridiculousfish with thanks)