[kihx] Support both .msh and .ply mesh format

- Add the abstract class IMesh.
- Rename the class Mesh into IrregularMesh which has the various number of vertices per face to support the msh format.
- Add the class OptimizedMesh which has only triangulated primitives to support the ply format.
- Add the class VertexBuffer and IndexBuffer for the OptimizedMesh.
- Handle these objects on rendering pipeline.
[kihx] Optimize rendering code

- Reserve stream memory.
- Use a constant buffer instead per-vertex color.