Add row vectors and non-square matrices to grammar
Replaces hardcoded 2x2/3x3 matrix branch with a shape table covering
1x2, 1x3, 1x4 (row vectors), 2x2, 2x3, 3x2, 3x3. Column vectors
excluded since vec() already handles those. Shape is chosen via weighted
sample; rows assembled generically so adding new shapes is trivial.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>