compiler: Rename withSelfValue => withSelfTemp

This is more consistent with other names where "temp" refers to
ps.TempValue and "value" refers to iv.IntermediateValue
runtime: Add assertions for the closure types

Ensure that escape procedures and parameter procedures are passed the
correct closure type. This was broken by an uncommitted change recently
and causes difficult to diagnose crashes.
compiler: Fix typo
compiler: Include failed cell in cast errors

This makes diagnosing runtime cast failures much easier