overhaul makefile, enable parallel builds

Enable parallel builds and drastically improve reporting.

Try it with `make -j8 -O`, -O is for --output-sync

[Preview](http://i.imgur.com/1Faydmu.png?1)

Features:
* colorized output
* summarized output combines test reporting and compilation errors for
  build and tests
* parallel builds work with -jN --output-sync or -O
* builds all files even if they fail to compile

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