ex_menu: Add some animation.
ex_menu: Add resize and fullscreen window menu actions.
ex_menu: Create resizable displays.
native_dialog: Move run-on-gtk-thread infrastructure out of gtk_menu.c

This will use useful for later changes.
native_dialog: Fix memory leak in GTK version of _al_update_menu_item_at.
native_dialog: Stack allocate run-on-gtk-thread ARGS structures.

The mutex and condition variable within are still heap allocated
but anyway.
x11/native_dialog: Use XEmbed protocol to contain an otherwise normal
Allegro display within a GTK top-level window, rather than using a
GtkGLExt widget.

This minimises the difference between normal Allegro displays and
GTK-enabled displays.  It also removes the optional dependency on
the GtkGLExt library, so fewer configurations to test.

This change also fixes multithreading issues, handles ALLEGRO_RESIZABLE
and ALLEGRO_FULLSCREEN_WINDOW during display creation, and accounts for
other widgets in the window in the implementation of al_resize_display.

Window size constraints are not yet handled.
Remove GtkGLExt from build system.
x11/native_dialog: Add ALLEGRO_GTK_TOPLEVEL display flag.

This flag allows programs to use the native dialog addon without
creating a GTK top-level window, which is only required for displays
which will have GTK menus.

Although we have successfully avoided having all input go through GTK
now, a GTK toplevel window is still incompatible with ALLEGRO_FULLSCREEN
so it needs to be optional.
x11: Disallow ALLEGRO_GTK_TOPLEVEL and ALLEGRO_FULLSCREEN together.
doc: Mention requirement for ALLEGRO_GTK_TOPLEVEL for menus.

Also update status of menu implementation for other platforms.
ex_menu: Set ALLEGRO_GTK_TOPLEVEL.
native_dialog: Delete unnecessary _al_gtk_ensure_thread calls.