Add support for unescaping GDB/MI c-strings.
Change the GDB/MI parser to read a line at a time from GDB.

Please see the section "The GDB/MI output command is a hoax" in
the gdbmi_grammar.txt file. This explains the rational for this change
and the potential improvements that will occur because of the change.
The parser, not the grammar, will provide output to the user.
Add the line field to gdbmi_output.
Make the gdbmi (bison and flex) parser reentrant.

This allows many instances of the parser to exist at the same time
in the same program.
Add const modifier to data parameter in gdbmi_parser_push.
Add a gdbmi parser unit test.
Add support for parse errors in gdbmi_output.
Add support for an unsupported result class.
Fix a potential memory leak.
Add error handling support for bad gdb/mi lines.

The bison grammar and the gdb/mi parse tree now support handling
incorrect gdb/mi lines. Unit tests were added that support 100%
coverage for the bison grammar.