feat: multi-market backtest engines with per-market rules
Replace single vectorised daily_portfolio engine with bar-by-bar engines
that enforce real market rules:
- ChinaAEngine: T+1, no shorting, price limits, 100-lot, stamp tax
- CryptoEngine: 24/7, funding fees, liquidation, maker/taker, leverage
- GlobalEquityEngine: US zero-commission + fractional / HK stamp tax + lots
New shared foundation: models.py (Position/TradeRecord/EquitySnapshot),
metrics.py (extracted from daily_portfolio), base.py (BaseEngine ABC).
Runner routes by source to the correct engine automatically.