Proper handler dispatch: nested slugs, method lookup, param binding
Rewrites the OCaml handler dispatch to handle all handler types:
1. Nested slug extraction: (api.(editrow.1)) → slug "editrow", param "1"
2. Method-based handler lookup: tries exact slug, then suffixes like
-form (GET), -save/-submit (POST), -put (PUT)
3. Path param injection: extracts <sx:param_name> from handler path
template, converts underscores to hyphens, injects into query string
4. Param binding: reads handler (&key) params via request-arg/request-form
and binds them in env before aser evaluation
5. Handles both List and ListRef param storage (CEK may mutate)
6. Response status support: set-response-status handled natively
Fixes: delete-row, edit-row, tabs, editrow-cancel, and all parameterized
handlers. 17/19 handlers now return 200 (flaky=503 intentional, slow=500
IO bridge timeout).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>