Extend the build versioning system

Previously, there was a single define in Pinoccio.h that defined the
build version. However, the version tracked should not really the
pinoccio-library version, but the version of the sketch (and for the
pinoccio firmware, really the version of the firmware-pinoccio
repository which includes the versions of all the libraries used).

Therefore, the build number now defaults to -1 and can be set to a
meaningful value by the sketch (by passing it to the Scout.setup()
method).

Furthermore, the name of the sketch and exact revision (e.g., git
revision) are now also tracked and advertised. Note that we can't
automatically determine this from within the C++ sources, so we rely on
a Makefile in the firmware-pinoccio repository to find out the git
revision. When a sketch is compiled normally, the revision defaults to
"unknown".