キューの反復子を双方向対応にした／factoryを追加

factoryは親クラスを変更せずに子クラスのファクトリメソッドを呼べるようにしたテンプレートクラス
FACTORY<親クラス>::start(0);とスタティックなメンバを作っておき、子クラス側で
FACTORY<親クラス> hoge(子クラスのファクトリメソッド)とすることで登録し、
親クラス側からFACTORY<親クラス>::New();と呼ぶことでどこかの子クラスが返る
登録されていないかすべての登録されてるファクトリメソッドが0を返すと0が返る
なお、登録されているファクトリメソッドを試す順番は不定