The embedder fix in this branch left the sibling LLM still hardcoded, so
a self-hosted LM Studio behind a non-default host worked for embeddings
and silently fell back to localhost for generation.
LMStudioConfig baked "http://localhost:1234/v1" into __init__, which
makes any env-var lookup downstream dead code. The field now defaults to
None and LMStudioLLM resolves config value, then LMSTUDIO_BASE_URL, then
the localhost default, matching the embedder and DeepSeek.