Mesh: Add shininess parameter support.

This addition breaks binary compatibility to suf_t, but it's no longer
needed.
Demonstrated specular model lighting with A10 and F15 in surface MOD.
Mesh: Give Polygon and UVPolygon's vertex types better names.

Previously Polygon's position and normal vectors of a vertex is
expressed as arrays, which are the worst option from a perspective of
readability.
Mesh: Renamed Mesh::ElemType enumeration constants to more intuitive ones.

Now we have gotten rid of all names containing suf from Mesh
class library.
Mesh: Make use of VBO (Vertex Buffer Objects) to enhance performance.

It's expected to be effective against complex objects with uniform material.
We don't have many of such kind of models, but the effect is valuable
if shadow mapping is enabled, because shadow mapping renders the scene
multiple times in a frame.

From this commit later on, Mesh class need to be newed instead of malloc'ed.
This is because a STL container is added to the class.  But it won't be a
problem if the user is object oriented.