Add RETRO_ENVIRONMENT_SET_GEOMETRY.

**DO NOT MERGE THIS YET**

Here's my proposal for how to fix spurios aspect ratio and base_width/base_height changes without requiring a potential driver reinit with `SET_SYSTEM_AV_INFO`.

Making a separate environment call avoids API break since `SET_SYSTEM_AV_INFO` can in theory be implemented to take the "fast" path if vital arguments have not changed, but changing this would require a non-compatible rewording of the spec. `SET_SYSTEM_AV_INFO` really should only be used when a reinit is okay and expected (e.g. a user explicitly changing resolutions in a game or similar).

If the geometry changes and integer scale is used, the viewport will resize. This is jarring, but integer scale with changing geometries while getting a fixed-size viewport is obviously impossible.