グローバル変数扱いだった設定保存クラスをPeerCastApplicationのメンバに移動した

設定保存用のPecaSettingsクラスが静的クラスのため各種設定が実質グローバル変数になっていて気持ち悪かったので、通常のクラスにしてPeerCastApplicationクラス経由でインスタンスを取得して使うようにした。
PeerCastApplicationのインスタンスはIUserInterface.Startからしか取得できないため、UI以外のプラグイン用には別途適切なインターフェースを追加する必要がある。
ログの出力先管理をLoggerクラスで行うようにした

Loggerクラスは出力先の保持しか行っておらず実際の出力先の追加はGUIのMainFormで行っていたが、
GUIへの出力はともかくファイルやコンソールへの出力可否をGUIで制御するのはおかしい状態だったのでLoggerクラス自身で行うようにした。
Logger.OutputTargetプロパティで出力先を指定するとLogger内で自動的に出力先を設定するようにし、従来のLogger.AddWriterで追加できる出力先は主にUI用として、LoggerOutputTarget.UserInterfaceを有効にした場合のみ追加したTextWriterに出力されるようになる。
Logger.LogFileNameプロパティにログ出力先のファイル名を指定してLogger.OutputTargetでLoggerOutputTarget.Fileを有効にするとファイルへのログ書き出しも行える。

GUIでログ出力先の管理をする必要がなくなったので、GUIでログ周りの設定をしている部分も合わせて整理した。
ログ関係の設定保存をGUIからPeerCastStation.exeに移行した

PeerCastStation.GUIにログ関係の設定保存コードが入っていたが、もはやGUIに依存するところは何もないのでPeerCastStation.exe側で設定保存を管理するようにした。