all THAT just for sharing canCauseLoops between macros and runtime reflection
support for sharing in interpreters
arrays now work correctly with interpreted runtimes
fixes unsoundness in canCauseLoops

We should assume that any non-final (or non-finally sealed) type can
give rise to loops. Otherwise, e.g. Any ends up being safe :)
fixes Array[Int] indentation in json
ref support for json