runmat-runtime 0.4.1

Core runtime for RunMat with builtins, BLAS/LAPACK integration, and execution APIs
Documentation
Interpreter error semantics and MException
----------------------------------------

- Builtins return `Result<Value, RuntimeError>`. The interpreter (VM) converts `RuntimeError` into `MException` when inside try/catch.
- Identifiers live on `RuntimeError.identifier`; `parse_exception` only splits strings when identifiers are missing.
- Catch binding: `catch e` stores `Value::MException { identifier, message, stack }` in the bound variable.
- `rethrow(e)` preserves identifier/message for `MException` values and wraps legacy strings into `RuntimeError`.
- Next work: enrich `RuntimeError.context` with call stacks/spans for deeper diagnostics.

Closures and feval
------------------

- HIR lowers `@(x) expr` to `HirExprKind::AnonFunc { params: Vec<VarId>, body: HirExpr }`.
- Compiler synthesizes a `UserFunction` with a unique name and emits `CreateClosure(name, capture_count)`. Capture analysis is pending; currently `capture_count=0`.
- VM implements `CallFeval(argc)` to handle:
  - `Value::Closure` by prepending captures and dispatching to builtin or user function; 
  - `"@name"` strings as function handles to builtins; 
  - `Value::FunctionHandle(name)` for builtin dispatch.
- Method handles via `LoadMethod` produce a `Closure` bound to the receiver in captures.

Constructors and classes
------------------------

- Fallback: calling an unknown builtin whose name matches a registered class creates a default-initialized `Object` (temporary until proper constructors).
- Static and instance member/method access is enforced through class registry from the VM opcodes.

Indexing and tensors
--------------------

- 2D slices supported via `IndexSlice`; N-D generalization planned with per-dimension selectors (colon, scalar, vector/range, logical mask, end arithmetic).
- Assignments: scalar element (`StoreIndex`) and 2D slice assignment via `StoreSlice` for `A(:,j)=` and `A(i,:)=`.

Accelerate (GPU)
----------------

- `gpuArray`/`gather` builtins route through `runmat-accelerate-api` provider interface, defaulting to an in-process test provider.
- Planner to decide CPU/GPU routing exists in `runmat-accelerate`; kernels TBD.

Docs and builtins metadata
--------------------------

- Builtins registry now stores `category`, `doc`, and `examples` fields to support structured docs generation; macro currently populates defaults.