Issue #3557496: Fix parameter placement for ElevenLabs API requests
Separate voice_settings parameters from root-level API parameters according to the ElevenLabs API specification. Previously all options were incorrectly nested inside voice_settings, preventing parameters like apply_text_normalization from working correctly.
Changes:
- ElevenLabsApiService::textToSpeech() now properly routes parameters to voice_settings object (stability, similarity_boost, style, speed, use_speaker_boost) vs root level (apply_text_normalization, seed, previous_text, next_text, language_code, etc.)
- ElevenlabsProvider::textToSpeech() passes configuration directly instead of wrapping in voice_settings array
- Only passes parameters where module defaults differ from API defaults