Rename the shader functions in the primitives addon so they don't conflict with the core's addon functions.
Load the D3D9X module during display creation and unload it when the D3D system shuts down.

The old way invariably tended to unload the module before the displays got destroyed, causing issues with default shaders.
Implement the default shaders.

The old OpenGL-only implementation is removed in favor of a cross-platform version that uses the shader API, although the logic behind it remains. The default shaders are set whenever al_use_shader is called with the NULL parameter. This happens when a new bitmap is targeted, and when a display is created.

Currently the display creation will fail if the default shader fails to compile.
It should be possible to get it to compile everywhere, leaving the only guaranteed failing case to be when ALLEGRO_USE_PROGRAMMABLE_PIPELINE is specified, but no shader backends were compiled in.

No allowance is made for shaders being invalidated on Android yet.

	modified:   include/allegro5/internal/aintern_opengl.h