Proper Model Batching *Merge*

Completely rewrote the OpenGL 3 and 1 model/mesh classes. OpenGL 1 uses the same technique as OGL 3 except instead of a vertex buffer it just uses a vertex array, meaning it can handle more data than those old stupid fuck call lists and has a chance of out performing them. Vertex arrays are compatible as well on all hardware, how do I know? Because I made d3d_draw_wall and d3d_draw_floor use a vertex array 3 months ago and nobody including polygonz has had an issue with vertex arrays, call lists are shit. The new mesh classes convert all primitives to either triangle list, point list, or line list guaranteeing maximum efficiency and minimal draw calls and memory usage. 

Tested on several games, and many more games now work in Direct3D 9.0, please merge when ready.