Revert "Merge pull request #1317 from pullreq/cpp"

This reverts commit 74135c0600d5dcc40d396d0e7293c17b8d4bdaa7, reversing
changes made to 6d749789ce240a3e6f1447777db63fd8e7525560.

See discussion in #1317
Implement status -n (line number) with new parser
Merge branch 'master' into parser_cleanup
Remove obviated builtins and additional cleanup of old parser
Clean up various block types and state as part of new parser
Allow the caller to specify the goal node when parsing a string via the
new parser. This enables parsing either a job list or an argument list.
Force at least one line of output for `set_color`.

This should fix #1323.
Allow the caller to specify the goal node when parsing a string via the
new parser. This enables parsing either a job list or an argument list.
Support for error detection in arguments in new parser. Restores error
reporting for bad arguments (e.g. with bad variable names)
Fixed various Undefined Behavior occurrences.

Conditionally uninitialized:
 - builtin_commandline.cpp:577
 - expand.cpp:869
 - parse_util.cpp:1036

Initialization of POD structs:
 - event.cpp:61
 - autoload.cpp:22

References used with va_start:
 - common.cpp:608:18

Found with clang-3.4's awesome -Wconditional-uninitialized,
-Wmissing-field-initializers and -Wvarargs.
Reorganize keyword recognition in the parser to use a single table
README.md: document build and runtime dependencies even better.
Make `contains` take the string by const reference again, for performance reasons
Makefile: separate messages.pot error lines
Makefile: assume UTF-8 in our codebase for translation generation
translations: correct strings for fish_greeting default message
translations: update new strings, convert all to UTF-8
ignore (generated) messages.pot
Fix for extra newline that gets appended if a command is not found in
the new parser
Remove support for invoking old pager