ComposeResourceImageTransformer
Resolves local markdown image references (e.g. assets/screenshots/foo.png) to bundled Compose resources via Res.getUri and loads them asynchronously using Coil 3's rememberAsyncImagePainter.
External URLs (http:// / https://) return null so the default renderer behaviour applies (or they are simply skipped). Missing resources are silently skipped (returns null) to avoid crashing composition when screenshots have not yet been generated or synced.
FR-038: Screenshots synced by syncDocsToComposeResources land under composeResources/files/docs/assets/screenshots/, matching the relative paths used in the authored markdown.