Modify trace api

@mortenvp I finished the unit tests and fixed the todos as good as i could. Please let me know what you think? :)
I guess we don't test this particular overload in sak:
https://github.com/steinwurf/sak/blob/master/src/sak/storage.hpp#L298
So the other overload might be called, and a mutable_storage is created instead.