tweak void function hack *again*, this time because a bound member function can't be const
renovate metrics
 * fix multiply defined symbols when header used in more than one place
 * timer -> microseconds, but displayed as ###.# milliseconds
 * virtual destructors and override keyword for metric classes
 * more informative typedefs
 * more member privacy
 * MOAR C++11