glDrawElements and glDrawArrays are refactored

* Both of them call _glDrawPrimitives, abstract the index access with iterator
* They are both generate triangle list, so we don't need to care about generateDLIndexData() doing swapping