XGrammar: Efficient, Flexible and Portable Structured Generation