Implement canvas element & 2D rendering context infrastructure (Phase 18)
Add HTMLCanvasElement support with backing pixel buffer, layout integration
as a replaced element, render pipeline integration, and JS bindings for
getContext('2d'), width/height properties.
- DOM: canvas backing buffer storage (init, resize, clear per spec)
- Layout: canvas intrinsic sizing (default 300x150, from width/height attrs)
- Render: canvas buffers composited as images via DrawImage pipeline
- JS: getContext('2d') returns CanvasRenderingContext2D with canvas back-ref
- JS: width/height getters/setters that resize and clear the buffer
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>