today's project for #GlasgowInterfaceExplorer: reworking the memory-25x applet

this is a very old applet, one of the first introduced. it works mostly fine, but it was designed and implemented before I really knew how to make good applet UIs, and long before I added QSPI support, so it's not using all of the available bandwidth & it requires specifying a bunch of geometry parameters by hand even when it is trivially extracted from the flash itself

I am planning to redesign the Flash command engine to support not just 1-1-1 (normal SPI) commands, but every mode including 1-1-2 and 1-1-4 (dual/quad data) and 1-2-2 and 1-4-4 (dual/quad address and data). to do this I will implement an abstraction for a (Q)SPI command set, which can then be extended and specialized by an individual flash

this will also handle devices like Winbond's and Micron's QSPI NAND devices (W25N series and MT29F series, respectively).

@whitequark oh this is going to be extremely useful, both for using in Glasgow and probably for copy-pasting into my own gateware. Seems like a good candidate for amaranth-stdio if that ever becomes a thing too.
@crzwdjk 100%, much of this is destined for eventual inclusion there