Fix target-async and background execution in gdb-mi.el
* lisp/progmodes/gdb-mi.el (gdb-target-async-checked): New
variable.
(gdb-non-stop-setting): Change the value back to default to
non-nil on systems other than MS-Windows.
(gdb-non-stop-handler): Try to set mi-async first, falling back to
target-async by calling 'gdb-set-mi-async-handler'.
(gdb-set-mi-async-handler, gdb-try-check-target-async-support):
New functions.
(gdb-check-target-async): Set 'gdb-non-stop' here...
(gdb-starting): ...and here.
(gdb-stopped): Call 'gdb-try-check-target-async-support' when the
program stops for the first time. (Bug#64186) (Bug#63084)