Move tracing logic to its own object

This makes it more sane, testable and so on.
Add a neat diagram
Version Bump
Give a helpful message if people mistake this for 1.5