Vertex Data Description + Stricter Compiler Flags

Added CVertexDataDesc as a description for VertexData
Finished DepthState abstraction
Added Cullface abstraction
Fixed issue with some if() statements ending in;
Added more warnings to the compiler in order to produce more cross
platfom friendly code.