#### Brief overview of PR changes/additions
- Convert the raw owning `LuaInterface*` member in the
`TLuaInterfaceTest` and `TVariableEditorTest` Qt-Test fixtures to
`std::unique_ptr<LuaInterface>` so the fixture's destructor frees it.
- `TLuaInterfaceTest` also stops allocating the interface (and a
`lua_State`) twice: members now init to `nullptr`/empty and are
allocated only in `init()`; `cleanup()` resets the interface before
closing the `lua_State`.
#### Motivation for adding to Mudlet
Keeps the test suite leak-clean and clears static-analysis warnings, per
CLAUDE.md's "smart pointers for non-Qt classes".
#### Other info (issues closed, discussion etc)
- Clears 2 CodeQL `cpp/resource-not-released-in-destructor` warnings
(`test/TVariableEditorTest.cpp`, `test/TLuaInterfaceTest.cpp`).
- Also removes a real runtime leak in `TLuaInterfaceTest`: the old
fixture never deleted the `interface` and double-allocated it
(construction + `init()`), leaking a `LuaInterface` per test plus a
construction-time `lua_State`/`LuaInterface`. Verified gone under
LeakSanitizer (old binary leaked, new binary is leak-clean;
`TVariableEditorTest` already deleted its interface so for it this is
modernization).
**Test case:** Build and run `ctest -R
'TLuaInterfaceTest|TVariableEditorTest'` - both pass (TLuaInterfaceTest
4/4, TVariableEditorTest 96 passed/13 skipped). Optionally run
`./test/TLuaInterfaceTest` with `ASAN_OPTIONS=detect_leaks=1` to confirm
no leaks are reported.
#### Brief overview of PR changes/additions
109 tests for the variable editor covering reading, creating, renaming,
deleting, and round-tripping all Lua types through LuaInterface. 12
tests are marked pending for known bugs with numeric key handling in
setValue, deleteVar, and renameVar.
#### Motivation for adding to Mudlet
The variable editor had only 2 tests previously, leaving numeric key
handling and type detection completely untested.
#### Other info (issues closed, discussion etc)
The pending tests document bugs that will be fixed in #9102.
**Test case:** Run `./test/TVariableEditorTest` — 96 pass, 0 fail, 13
skip.