Makefile additions for ccache

Added a new make environment variable CCACHE. This enables the usage of 'ccache' for those of us that have it, which speeds up compilation time. Makefile should still work without it though!

This variable supports both g++ and clang.

Enjoy ladies and gents! :-)
-Davek
Two things of note, first:
1. as per [this blog post from Peter Eisentraut](http://petereisentraut.blogspot.com/2011/09/ccache-and-clang-part-2.html), ccache performs macro expansion and then feeds the expanded variant to clang++, which can lead to clang warning about too many parentheses or whatnot, and
2. according to comments on the same post, `-Qunused-arguments` isn't necessary (and, indeed, would quite likely hide unused-argument warnings we *do* want to catch).

The recommendation is to set `CCACHE_CPP2=yes` (or 1, or true), which causes ccache to invoke clang on the un-expanded original file.