Add simple tests

Add some quick tests to verify that bf actually parses and runs BF.
Don't set $CC in Makefile

Unconditionally setting CC=gcc is probably a bad idea.
Split "qf" out from "bf"

Split "library" code from the "driver" code, and modify Makefile
accordingly.
Add "clean" target to remove build files
qf_run(): use i as current, not next, instruction

This removes the need to adjust i in the loop code, and makes more sense
overall.

The "cost" is that i gets initialized to -1 instead of 0.
Add simple, non-looping tests.

When things break, it's nice to know what's not broken.
Change QF semantics to allow immediate values

Shift all opcodes left by four bits, making room for a four-bit
immediate value. This is currently only used in the arithmetic and seek
ops.

Note that this means values in the program stream can be negative (since
it uses signed chars), and this must be accounted for during shifts.
Generate immediate values for QF ops

When generating QF for '+', '-', '<', or '>', consume up to fifteen of
the same character to create one QF operation with the appropriate
immediate value.

Note: this doesn't do any actual code transformation, so the BF program
"+-+-+" will still translate to five QF instructions.