optional_iteratorの除去

アセンブルリストを比較しているとインライン化の妨げになっているようだったので、optional_iteratorを使わないようにしました。
差分
COWベースのstring_list(注:名前はlistだけど実体はvector)で、リストが空でvectorが作成されていない状態のbegin()/end()用反復子が必要で、これ(有効な範囲+無効値が必要)に対応するためにoptional_iteratorを使っていました。
ただ、optional_iteratorはアクセスする度に有効/無効の判定が必要な分遅いようです。
単に無効値を表現できればよいので、ただのポインタに置き換えてしまいました。
実行結果はあまり変わらなかったですが、、、。