When the LLM agent requests an indicator that isn't supported
(e.g. 'agt'), the function was raising a ValueError which crashed
the Market Analyst. Now it returns an error string that tells the
agent which indicators are available, allowing it to self-correct
and retry with a valid indicator.
Applied to both yfinance and alpha_vantage indicator functions.
Fixes#429
Add _clean_dataframe() to normalize stock DataFrames before stockstats:
coerce invalid dates/prices, drop rows missing Close, fill price gaps.
Also add on_bad_lines="skip" to all cached CSV reads.