Fix toggle screen layout command in input gestures dialog (#19487)
Fixes #18378
### Summary of the issue:
The script to toggle screen layout in browse mode documents does not
show the correct gestures:
* If it is only bound to `NVDA+v` (the default), no gestures are shown.
* If it is bound to multiple gestures, only a subset of these are shown.
### Description of user facing changes:
The command shows all bound gestures in the input gestures dialog.
### Description of developer facing changes:
Developers are now advised to implement the `_toggleScreenLayout` method
on classes that inherit from
`browseMode.BrowseModeDocumentTreeInterceptor`, rather than implementing
`script_toggleScreenLayout`. The old approach will still work, it will
just cause this issue to resurface for their document.
### Description of development approach:
Refactored
`browseMode.BrowseModeDocumentTreeInterceptor.script_toggleScreenLayout`
to call a helper method, `_toggleScreenLayout`. If the helper method
raises `NotImplementedError`, the unsupported message is presented to
the user. The base implementation simply raises `NotImplementedError`.
Changed `virtualBuffers.VirtualBuffer` to implement
`_toggleScreenLayout` rather than `script_toggleScreenLayout`.
### Testing strategy:
Ran from source. In Firefox, toggled Screen Layout and verified that the
correct message was output and that it corresponded with the new screen
layout state.
In word, switched to browse mode and attempted to toggle screen layout,
and observed that the unsupported message was heard.
### Known issues with pull request:
None