overhaul makefile, enable parallel builds

Enable parallel builds and drastically improve output.

Features:
* colorized output
* summarized output combines test reporting and compilation errors for
  build and tests
* parallel builds work with -jN --output-sync or -O

New make targets, all support parallel builds:
* make all - compile files regularly and for testing and run all tests
* make build - compile all files regularly
* make test - compile all files for
* make changed - compile files that changed from MASTER