Fixed inter-generational pointer bug

When making inter-generational pointers from young to old
as roots in old heap, also make forwarding pointers as roots
but they are generated by young heap collection and likely to
be used by the un-finished tree traversal of young heap collection
Built caches model and added some benchmarks

`./run-tests` to generate benchmarks
Refer to `patterns.txt` for to-do of proper benchmarks
Moved test files
Fixed benchmarks

Print error messages to benchmark output
& fixed the heap size of case list-3