Automatically unuse a shader everywhere before destroying it.

This requires that each shader keeps track of which bitmaps it is used in.
Make al_destroy_shader imply al_use_shader(NULL) if the shader is used
by the target bitmap of the calling thread.
Let al_destroy_bitmap implicitly untarget the bitmap on the calling thread.

al_destroy_display had a similar convenience, and now al_destroy_shader
does, too.  For consistency, add the same convenience to
al_destroy_bitmap.
Let the destructor system clean up shaders.
Slightly simplify code to create default shaders.