caas is now drivable through stdin

* added idetools --eval
* streams.readLine recognises and applies the backspace character
CaaS in-memory caching

removed some redundant filepath params and variables and
switched to canonical paths in most places
[caas] first version that actually works (still has a lot of logical memory leaks on recompilation)
store the instantiation cache in the generic symbol
experimental compile-time rope formatting code
first batch of rope code converted to `rfmt`

The results so far are inconclusive:
The rope cache tries have been reduced by more than 125K (nearly 20%),
but the bootstrap time seems to be ever slightly increasing (0.01s).
disables the compile-time rope formatting during bootstrapping
temporary debugging code for the memory leak investigation
track the "owner" heap object in the ref write barrier

See the papers for reference counting with heap sliding views for details:
adds an option to interleave the generated code with snippets from the original source

Lines from the original source are outputted as comments next to line directives.
Hopefully, this will make debugging codegen problems easier.

Other changes:
The frame setup code now uses a single-line C macro. My motivation was to reduce
the noise in the generated output and make it easier to step over the boiler-plate
code, but counter-intuitively this also improved the overall compilation speed a
little bit so I applied the same treatment to line tracking too (this reduces the size of
the generated files and the explanation is that probably the I/O overhead dominates
the macro expansion costs).
fixes the recently discovered GC memory leaks

This revision is intended as comparison point between the old and the new GC
The used GC can be switched in mmdisp and various statistics will be gathered during
execution (these will be removed/disabled in later revisions)
cleaned up some debugging code
fixed a regression: compiling projects not residing in the current directory
minor bug fixes to make some tests green
Disabled mark-and-sweep in the compiler itself

This also adds "cycle roots trimming": a light-weight collection of the cycle
roots performed in CollectZCT for candidates that are recently allocated
and provably dead.
Added some tooltip functions to the gtk wrapper.
Added strutils.unescape and fixed issue with strutils.escape.
Added gtk_window_is_active to gtk wrapper.
fixes #319
incompleteStruct pragma for C's FILE