Cross process task tracing - fixes 34

Fixes #34.
Every attribute lookup results in a different object:

```
>>> class C(object):
...     def f(self): pass
...     f2 = f
... 
>>> C.f == C.f2
True
>>> C.f is C.f2
False
```