Automatically call OnLostDevice and OnResetDevice on HLSL shaders.
Remove the default shader specific code doing this as it is now
generically done for all of them.

To allow this, _al_set_display_invalidated_callback was changed
from "set" to "add" so it keeps a vector of callbacks. A "validated"
callback was also added as well as functions to remove callbacks.

HLSL shaders are now compiled with the D3DXSHADER_USE_LEGACY_D3DX9_31_DLL
flag. This seems to make some shaders the shader compiler is too "smart"
to compile compile quickly instead of taking infinite time. Despite
the name it doesn't appear to require that specific DLL (demonstrated
by forcing dll version 35 in allegro.cfg.)