Makefile: use $(CC) instead of hardcoding compiler

Instead of forcing gcc, use a variable. This allows the person
compiling the code to use a different compiler without having
to edit the Makefile (example `make CC=clang`).
expression: fix typos in comments.
main: add return value for main().
expression: ensure non-void funcs return value.

Although in most cases the code won't reach the end of the function,
it makes the compiler happy to have a return statement at the end
of functions that return a value.
.gitignore: ignore the 'test' executable.

On Linux systems there is no .exe file extension, so the binary
`test` goes unignored. It should be ignored as it doesn't belong
under version control.
Merge pull request #1 from tcort/fixes

Merging some fixes. Thanks tcort!
I really appreciate it. Did you find any useful application for this? I wrote this originally to run on a CASIO Super-Hitachi-3 CPU powered calculator :D