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