all THAT just for sharing canCauseLoops between macros and runtime reflection

Conflicts:
	core/src/main/scala/pickling/Tools.scala
support for sharing in interpreters

Conflicts:
	core/src/main/scala/pickling/Runtime.scala
	core/src/main/scala/pickling/package.scala
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
adds picklee cache cleanup to pickleTo

SANITY CHECK: is there unpickleFrom? if yes, it also needs cleanup
adds picklee cache cleanup to simple-w-collection-using-builder-directly

This would definitely use a high-level API for that purpose
TODO: add support for dynamic unpickling settings

Conflicts:
	core/src/main/scala/pickling/Runtime.scala
TODO: initialization order wrt nested objects
ATTENTION!! removes the runtime project - it's unused anyway
Holy mother of jesus. It now works for general graphs and custom picklers.
Fix List pickler
Fix problem with order in which fields are pickled
Fix problem with nested collections
Revert "Fix problem with order in which fields are pickled"

This reverts commit 3c39b9491080bd5bb23ba846a0a3af91ddeace20.
Simplify graph tests
Remove brittle manual generics test
Add data for graph benchmark
Pushing up the wikipedia graph reader– let the graphs begin!