lisa.trace: Ensure cache eviction for custom parsers
If the given parser is an object that does not have a module and qualname attributes (such as types and functions), add a random UUID to the trace state so that dataframes produced with it will not be reloaded by another Trace instance.
This ensures that dataframes will be evicted as they should when another parser with potentially custom event parsers will be used.