Improve Zig AST developer experience
- Convert string-based type discrimination to type-safe enums
- ContainerKind (struct, enum, union, opaque)
- LiteralKind (int, float, string, char)
- LoopKind (for, while)
- Remove duplicate AST nodes (consolidated init lists, removed unused types)
- Add comprehensive helper functions for all AST constructions
- Implement formatters for all AST nodes (expressions, statements, types)
- Add typed literal constructors: IntLit, FloatLit, StringLit, CharLit
- Improve documentation and add deprecation notices
This makes the AST more intuitive and type-safe for developers.