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? :)
But it's the same function which is called. It works if i store the string in a variable instead of passing it directly. It's very odd to me.. And they way it fails is also very weird.
I use the m_data attribute on the storage object as a return value for a stub object. And the first few times the stub object is called the right pointer is returned, but the sixth (i believe) it returns another pointer and hence causes the test to fail. Very odd!