Each backend becomes its own module that imports 'imgui' and includes
its header and source in the purview. Do the same preparation as for
the core:
- Skip system, platform and graphics API includes under
IMGUI_CXX_MODULE, because the module includes them in its global
module fragment.
- Skip the forward declarations of platform types (GLFWwindow,
SDL_Window, ID3D11Device...). Declared in the purview, they would be
new types attached to the backend module instead of the real ones.
For the same reason, sdl2 drops the elaborated
'struct _SDL_GameController'.
- Wrap each header's API in IMGUI_EXPORT_BEGIN/END.
- win32: export ImGui_ImplWin32_WndProcHandler() under IMGUI_CXX_MODULE.
The header keeps it commented out to avoid pulling in <windows.h>,
but a module user can't forward-declare it themselves.
- glfw: skip the local GetIO(ImGuiContext*) declaration, because
'imgui' exports it.