show(o::Any) handles circular references

This small patch specifically only handles the looping associated with self-referential compound types which do not have a ```show``` method.

It is a temporary fix till the larger issues of a better ```show``` is available. Works by recording already printed objects in a task local Set.

Will be useful for new user defined types with self-referential objects that do not have a ```show``` method.