Add custom vertex attributes to the primitives addon (OpenGL only).

The attribute locations are handled outside the addon in accordance with how it's been done up to this point (e.g. use_tex_matrix is an attribute solely needed by the primitives addon). Perhaps there is a better way of doing it, but until that's fixed this seemed the cleanest approach. The number of custom attributes is not infinite, but will be limited to 14 with DirectX. 10 should be enough for everyone, though!
The code to find the locations of the custom attributes was wrong.
Added an example showing custom vertex attributes and how to use the from shaders.

For GLSL only for now.
Shader addon wasn't setting the right matrix uniform for HLSL.
Move ALLEGRO_MAX_USER_ATTRIBUTES to aintern_display.h so the d3d code can also use it
Implemented the custom vertex attributes for D3D/HLSL.
Remove the vsa.exe dependency from nshader.cpp.

vsa.exe was used to assembly the vertex shader assembly into binary. This program has been removed from DirectX SDKs for awhile now, so this was a pain. I replaced the vsa.exe calls with fxc.exe calls which accomplish a similar purpose. I note that the shaders generated using this new method are larger than the old ones. I am not sure why that is, but they seem to run ok.
A minor revamp of the HLSL default shader system in the primitives addon.

Changes include:

Always use texcoord1 for the color and texcoord0 for the texture coordinates. This makes writing shaders a bit less error prone.

Move the generated shaders into precompiled_shaders.inc to follow the lead of other such files in Allegro.
Revert a spurious color change
Remove unnecessary platform specific header includes.
Rename ALLEGRO_PRIM_USER to ALLEGRO_PRIM_USER_ATTR. It's more descriptive this way.
Document the user attributes