Changed to a generic interface for the provider

汎用的なインターフェースにするためジェネリックに変更した。
これによりプロバイダインタフェースからPolygon以外のものも作成できるようにした。
Created a provider of polygon for OpenGL
Created a namespace OpenGL

グラフィックスライブラリが関係するクラスの名前空間は末尾にそれの名前を入れるようにする。