add support for controlling which tracking "backend" is used by setting env vars
refactor the tracking logic so we can easily switch between otel & prometheus (and others in the future). The system is inspired by what rust uses and will probably get a start function as well
And also:
start
function as wellCloses #18