Fixes
* Convert list of objects to trace into a set to prevent double-listed
  items.  This would cause originals to fail to be restored.
* Don't trace functions whose module attribute is not the same as the
  object being traced (normally this applies to imported functions).
* make filename a thread local outside the tracer instance