make IDs have to end with a semicolon

this is to get around the conflict of qbrt reserved words with
source code IDs. probably going to dump this and change qbrt reserved
words to have a marker
prefix all keywords with a backslash

this gets around any conflicts between keywords and identifiers used by the
source program
treat first element of each line as a cmd

and lex it as a special command so that the commands don't all have to
be prefixed to indicate that they're not IDs. now only \void and \result
and a few other special keywords that are used as arguments need to be
prefixed with the backslash and all the commands can just be as they were
Merge branches backslash_keyword & semicolon_ids

This was a merge -s ours, so these branches weren't actually used. I
just wanted to get their commits into the history as an example of which
other alternatives were considered
fixed rake T to compile in the T directory

T isn't a valid module name, so working around that by just running the
tests from that directory
add tests for new example functions
add compilation of a new match instruction

this instruction matches input values to pattern values, stores the
results in a result register if there's a match. and if no match it
jumps to the given label.

still doesn't execute, so some of this is probably not correct.
basic implementation of pattern matching

this is still too basic. need to make it handle the result correctly
finished implementing *basic* pattern matching

so far only works for ints or complete strings. no partial strings or
anything like that.
add more metadata for c functions

still haven't added enough yet for c bound functions to override prototypes
clean up info output formatting a bit
trimmed up function declarations

no more protoabstract and protofunc, just abstract and func. also no
more protocol name in the function declarations, it's already in the
wrapping protocol declaration
consolidated function_value and cfunction_value

function_value now contains necessary C function info and can hold one
or the other.