manage build metadata

@alainjobart 

Burn build-time metadata into our binaries and use this information as a replacement to the startup-time binary-MD5 that we were using for tracking versions before.
I considered that, but it is more nesting for the same effect. I know I'm intentionally generating and then ignoring errors in the empty-case.