Minor renaming in shader/mesh guts.

Function size() will be used later for commputing size of the attribute,
renaming the original to components().
Forgot to rename this to match OpenGL name.

It was named this way in the docs, but in the actual code not. Don't
know why.
Mesh: fixed attribute stride computation.

The stride was computed always for resulting GLSL type (e.g. vec4) even
if the data were of anoother type (e.g. std::uint8_t[4]). The code is
exceptionally ugly now, time to wrap it with unit tests.