Fix closure capture for destructuring, catch params, and class decls
Remaining define_local() calls in destructuring patterns, catch
parameters, and class declarations did not check captured_names,
causing closures that capture these variables to fail at runtime.
Replace all with define_local_ext() + proper cell allocation, and
remove the now-unused define_local() method.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>