With the new attrs_info_get method, we can get information about
the attributes used in a GPUShader and thus have more freedom in the
automatic creation of GPUVertFormats
This is a proposal to replace GPUShader.format_calc() (which can even be removed after the commit).
With this solution we can achieve the same objective proposed in D15726, which is to use 2D coordinates in 3D shaders.
With this change we can even remove the 2D builtin shaders.
Usage example
>>> # See the information of: [attribute name, attribute type] used in the GPUShader
>>> import gpu
>>> shader = gpu.shader.from_builtin('3D_FLAT_COLOR')
>>> print(shader.attrs_info_get())
(('color', 'VEC4'), ('pos', 'VEC3'))