ウィジェットの設計見直し

AbstractWidget の継承ベースからプロトタイプベースに変更。