Adds the `baml_surface` crate which provides a stable-ish surface for
tools like `baml describe` to query compiler internals for program
information. `baml describe` has been switched over to using it,
allowing improved json output and a new `baml describe --export` which
will provide the full surface area of a specified package (useful for
chaining with `jq` to perform more complex queries)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added JSON export for complete packages through `baml describe
--export`.
* Enhanced `baml describe` with documentation, generics, signatures,
throws information, implementations, source locations, and member
details.
* Added stable symbol and member identifiers for machine-readable
output.
* Improved name resolution across user and built-in packages, showing
all matching results when names are ambiguous.
* **Bug Fixes**
* Standardized CLI output across different environments.
* Improved displayed function types and interface signature resolution.
* Preserved documentation comments for supported declarations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->