검색 정책 분기

`IGNORE_CASE`는 설정 읽기와 검색 실행 사이를 잇는다

환경 변수는 `Config::build`에서 한 번 읽고, `run`은 저장된 `ignore_case` 값만 보고 두 검색 함수 중 하나를 호출한다.

1

실패 테스트로 새 요구를 고정

`case_insensitive`는 `rUsT`가 `Rust`와 `Trust me.`를 모두 찾는지 먼저 확인한다.

2

비교 전에 같은 형태로 변환

`query.to_lowercase()`와 `line.to_lowercase()`로 대소문자 차이를 검색 조건에서 제거한다.

3

`Config`에 실행 옵션 보관

`ignore_case: bool`을 추가해 명령줄 인수와 환경 변수 해석 결과를 실행 단계로 넘긴다.

4

`run`에서 검색 함수만 선택

`config.ignore_case`가 참이면 `search_case_insensitive`, 거짓이면 기존 `search`를 사용한다.