display: try next module if conversion fails

After a display module initialises succesfully, a conversion filter
chain must be built from the source format to the display format.
Currently, this is effectively assumed to succeed. When it fails,
the display module is closed and display creation is given up entirely.

However most display plugins accept practically any source format that
is thrown at them, with little or no consideration for the possibility
of conversion chain failure.

After closing the unusable display module, with this change, the next
display module in decreasing priority is tried.
20 jobs for !1210 with display in 17 minutes and 23 seconds (queued for 9 seconds)
latest detached
Status Name Job ID Coverage
  Build
passed android-arm #899297
docker amd64

00:03:44

passed android-arm64 #899298
docker amd64

00:02:50

passed android-x86 #899299
docker amd64

00:03:43

passed android-x86_64 #899300
docker amd64

00:03:44

passed debian #899288
docker amd64

00:04:56

passed ios-arm64 #899293
amd64 catalina

00:05:04

passed ios-armv7 #899294
amd64 catalina

00:05:53

passed ios-simulator-x86_64 #899295
amd64 catalina

00:04:40

passed macos-arm64 #899292
amd64 catalina

00:12:41

passed macos-x86_64 #899291
amd64 catalina

00:13:07

passed raspbian-arm #899290
docker amd64

00:03:25

passed snap #899289
docker amd64

00:10:18

passed tvos-arm64 #899296
amd64 catalina

00:04:37

passed uwp-arm64-libvlc-llvm #899287
docker amd64

00:03:44

passed uwp64-libvlc-llvm #899286
docker amd64

00:06:04

passed wasm32-emscripten-build #899301
docker amd64

00:03:45

passed win32 #899282
docker amd64

00:04:10

passed win64 #899283
docker amd64

00:06:48

passed win64-llvm #899284
docker amd64

00:06:43

passed win64-ucrt-llvm #899285
docker amd64

00:04:40