runtime: Cleanups

- Remove unused EscapeProcedureClosure

- Remove unused includes from EscapeProcedureCell.h

- Don't refer to reference counting in the State.h header
runtime: Dynamic state support for (call/cc)

- Add DynamicStateCell that is simply a wrapper around a State* object
  for garbage collection purposes. This allows our normal copying GC to
  be used to visit and track dynamic states

- Make codegen place a GC barrier when pushing a dynamic state to take
  in to account the possible GC when allocating a DynamicStateCell

- When switching states check if the destination state is a descendant
  of the current state before popping the state. If it is then keep
  entering states until we reach the desintation.
runtime: Include cell ref ranges directly in World

A CellRefRangeList consists of a single pointer to the list head.
There's no point allocating that pointer on the heap and double
indirecting through it. Instead, we can just include the head pointer
itself in World. This matches what dynamic::Continuation does.
typegen: Add "runtime-only" cell classes

Runtime only cell classes are hidden even from the compiler. This means
its type system doesn't know about the cell type and it won't generate
range metadata including the type ID. This is only used for dynamic
state cells at the moment.