Added smart tracer implementation to ITracers so the metric type can be
passed as an arbitrary object and then internally translated into the
actual type.