Changed UI of prompt tab

Show function definition and use button under prompt demo when prompt
demo is selected
Set current prompt as selected prompt after prompt change
Do not highlight selected prompt
Autogenerate manpage completions in background if they do not exist
Don't show warning while generating man page completions on startup
add bindings for PuTTY's I-can't-believe-it's-xterm keyboard

(see #170)
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.
Merge branch 'master' into ast

Conflicts:
	complete.cpp
	fish_tests.cpp
Remove old unescape() function
Merge branch 'master' into ast
Correctly detect unbalanced 'end' in syntax highlighting
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