Backport tangential X11 changes from 23fa5f6a567405c8ae033329998ed19a6a8fb88c

The change was "Added Raspberry Pi port. Remove Wiz references."
Backport only these changes which moved in the X port around.

(cherry picked from 23fa5f6a567405c8ae033329998ed19a6a8fb88c)
Added a test for loading interlaced .png.

(cherry picked from commit 6a4effda7e1c68650473db7a3a1fd98518b77e4a)
(cherry picked from commit a4e525b101b4498de23e6c14103a0d671ba8d912)
image: Backport png.c from 5.1 branch.

Backporting the individual commits is too hard so this is a copy
of png.c as of 08d61e2188ce10d3dd84e267ba75a9b9b48c2e3e
with minor changes to work on the 5.0 branch.
Add al_set_display_icons (plural).

Replace the display interface method set_icon by set_icons.
Actual implementations of multiple display icons to follow.

(cherry picked from commit fd9de8de88e9558b59e51d52405215dc82a9bdd7)
Implement multiple window icons for X11.

(cherry picked from commit cd9465cca50bd92d1cf2033920839fd3f71645f8)
Implement multiple window icons for Windows.

(cherry picked from commit aaed05fb459acd286a0b9f7dbec980f3f4cbed52)
docs: Document al_set_display_icons.

(cherry picked from commit 203d695bdc326b0ce5296dfcb7d2a65286fccfed)
ex_icon2: Add example for al_set_display_icons.

(cherry picked from commit 91835fbfd3176f2aff0de317b7c3f1b5df88f546)
d3d: Release textures in _al_d3d_sync_bitmap failure paths.

_al_d3d_sync_bitmap would leave textures with incremented reference
counts, causing later device Reset() calls to fail.
i.e. if the user alt-tabs out of an application while a texture was
locked, the application would never resume properly.

(cherry picked from commit 69c23d5158d81db5bdcaa807ab1ddffe4973f3f1)
d3d: Make d3d_lock_region fail immediately if _al_d3d_sync_bitmap
failed, likely because the device was lost.

(cherry picked from commit 106499b97b8210c4077f3d9dd73bb4df3f6c451d)
d3d: Set device_lost flag immediately when d3d_display_thread_proc
finds the device is lost.

This avoids a crash in the DrawPrimitiveUP call in d3d_flush_vertex_cache.
It seems one of the textures for the cache bitmap is invalid then (after
device lost), but no other functions return an error code.  This change
is probably not a complete fix, but is the best I have found so far.

(cherry picked from commit f79e25324a6245dd323d61ff51bd1fd2a5797416)
docs: Separate Fullscreen modes and Monitors out from Displays.

(cherry picked from commit 48c88c9b5261bb12a4a1c8612baedcbe67c101f6)
docs: Reorganise display routines.

(cherry picked from commit 55cd03a1a8239b7cec6fcd0358faecaad2e0f536)
Add missing file comment.

(cherry picked from commit 32713f2558d8eb6ca68db28f2e6d247f23f0103c)
Restored ability of the native OSX image loader to load grayscale pictures.

(cherry picked from commit 587db41c398210abe4ced6ec57f87b13cb6231de)
Restored loading of grayscale+alpha images in the OSX native image loader.

(cherry picked from commit 1f47185623b1dd54c322398f3c10533cf699010d)
send a quit event to the stream threads before closing the stream like in ogg.c and wav.c

(cherry picked from commit d5068b96b42db27d88445c11972192046282a512)
use a helper function to stop the audio stream feed thread

(cherry picked from commit 61c3a971f3f398368a8e95fbff93a1ee5918d6fe)
acodec: Add _al prefix to _acodec_stop_feed_thread.

(cherry picked from commit ba7a6dbe503a0596620409978de233691ee0e2b7)
Separate out fullscreen mode routines from display.[ch]

(cherry picked from commit 9141e561b082ab6e19ee1c63da555b3f76ecd7a6)