In particular, we need to disentangle the interceding netplay callbacks.
In previous versions, if you disconnected netplay but were using a core
that made netplay stall for connections (i.e., one that has no
savestates), netplay would continue to stall because it still
interceded, even though it was supposed to be off. This fixes that.
The new environment RETRO_ENVIRONMENT_SET_SERIALIZATION_QUIRKS allows
cores to communicate any quirks their implementation of serialization
may exhibit. This is useful for distinguishing between serialization
implementations that are sufficient for netplay, rewind, regular use,
etc, as each of these have different requirements and it should be
possible to support a "good enough" serialization without breaking
frontend features.
In this first cut, Netplay can be enabled "mid-stream", but not much
else is supported. Client reconnection and either-side disconnection are
listed in the menu but don't yet do anything.