PortableVertexFormat: add a struct which hold all needed information for every vertex and use this for position

atm, position attribute is hardcoded both in VertexLoader and in backends.

v2: fix coding style + cleanup lookup table
PortableVertexFormat: use AttributeFormat for normal attribute format
PortableVertexFormat: use AttributeFormat for color attribute format
PortableVertexFormat: use AttributeFormat for texcoord attribute format
PortableVertexFormat: use AttributeFormat for posmtx attribute format