抜本的な形で設計を整理した

1.ICookieGetterの機能をシンプルにした。互換性関係でICookieImporterに改名
標準ライブラリ側で片付ければいいものは消した。

2.IBrowserManager周りのコードの重複を省いた。互換性関係でICookieImporterFactoryに改名
マルチプロファイル系が腐ってたので重複コードを消した。

3.CookieStatusをイミュータブル化、BrowserConfigに改名
CookieStatusはICookieGetter向けの引数としての役割と外からの状態チェックの役割の2つを兼ねていて見通しが悪い。そのため、引数としての役割に特化させ、外向けの情報はICookieGetterに持たせた。イミュータブル化してるため、設定の変更はCookieStatus.Generate(), ICookieGetter.Generate()を組み合わせて必要なICookieGetterを再生成させる。

4.いくつかのクラスの名前を役割が端的に表現されるように改名した。
ICookieGetterの実装クラスはレンダリングエンジン名をクラス名にするよう徹底した。

5.単体テストでいくつかのブラウザを一括チェックできるようにした

6.独自エンジン時代のOpera用のCookieGetterを削除
オワコン。中身がゴリ押し気味で危ないので削除。

7.名前空間を我流に変更
本家CookieGetterSharpとの互換性の無さをはっきりさせるために名前空間を変更。互換性対策としてHal.CookieGetterSharpにはラッパークラスを作成した。