Makefile: allow compiler override, split obj generation

Allow a different compiler to be specified and split the actual object
compile to a different target.
Annotate for -Wunused-parameter, add -Wextra

Useful during development.