fix: ART synthesizer registration via clean singleton pattern
Fixes KeyError: 'testvoice' caused by Python double-import issue.
Addons were importing nvda_art as a new empty module instead of
the running __main__ module.
- Add art.runtime singleton with getRuntime()/setRuntime() methods
- Thread-safe implementation with proper error handling
- Replace broken nvda_art.artRuntime access pattern
- Follow NVDA camelCase naming conventions
This provides clean API access to the ART runtime instance,
ensuring synthesizers can properly register with services.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>