runtime: Add leak checking for record-like data

This ensures that record data (including continuations) aren't leaked.
It increments a counter for every call to allocateRecordData() and
decrements it again whenever the finalizer frees a non-inline record
like.
runtime: Force collect when switching dynstates

If _LLIBY_ALWAYS_GC is enabled then force a collection whenever
switching between dynamic states.

Switching states can always potentially collect as the states have can
have before/after procedures that execute arbitrary Scheme code.
However, this doesn't happen frequently. Force a collection to ensure
that callers are rooting their values correctly.
runtime: Root continuation in the resume path

We were using the Continuation object to pass values back to the caller.
However, if it wasn't rooted in the resuming continuation it could be
cleaned up by GC when we switch dynamic states. With our new GC-happy
debug switchStates() this showed up as crashes and valgrind reports.
Implement (raise-continuable)

This adds a SchemeException::resumeProc() that stores the escape
procedure pointing to the (raise-continuable)'s continuation. When an
exception handler returns from an continuable exception that
continuation is resumed instead of rethrowing the original exception.