refactor(mir): Phase 140-P5-A - LoopProcessingContext SSOT化
## 変更内容
### 新規ファイル
- `src/mir/builder/control_flow/joinir/loop_context.rs` (324行)
- LoopProcessingContext 型定義
- AST + Skeleton + Pattern の統合 Context
- verify_parity() メソッド実装
### 修正ファイル
- `src/mir/builder/control_flow/joinir/mod.rs`
- loop_context モジュール追加
## 実装内容
### LoopProcessingContext 構造
```rust
pub struct LoopProcessingContext<'a> {
// AST 情報
pub condition: &'a ASTNode,
pub body: &'a [ASTNode],
pub span: Span,
// Canonicalizer 出力(Option: 未実行時は None)
pub skeleton: Option<LoopSkeleton>,
pub decision: Option<RoutingDecision>,
// Router 情報(常に存在)
pub pattern_kind: LoopPatternKind,
pub features: LoopFeatures,
}
```
### 主要メソッド
- `new()`: 新規作成(Canonicalizer 未実行)
- `set_canonicalizer_result()`: Canonicalizer 出力を設定
- `to_loop_ast()`: AST 再構築(parity verification 用)
- `verify_parity()`: Canonicalizer と Router の一致検証
### テスト
- 5 つの単体テスト実装
- Context 作成、AST 再構築、parity 検証をカバー
- 全テスト PASS ✅
## 効果
- AST + Skeleton + Pattern の SSOT 化
- 重複 AST 再構築コードの削除準備完了
- 情報の一元管理による保守性向上
## 次のステップ
Phase 140-P5-B: parity_checker.rs を Context 化