Split AST block models and zero-Compose Markdown block parser into ui/chat/markdown/ package. Wire into MarkdownText.