Add test for atomic code upgrade
From https://github.com/microsoft/CCF/pull/3383/files#r782073623
The code upgrade procedure described here is very much the slowest possible one (add new nodes one by one, retired old ones one by one). We know we should be able to support an atomic proposal to retire all old nodes and add the new ones in one go. However, we don't have a test for this so recommending the step-by-step approach seems like the most sensible option for now.
We should add a test for atomic (or two-step) code upgrade and document it as it would reduce the number of steps required for the code upgrade process.
The basicperf test does that now when --stop-primary-after-s <int> --add-new-node-after-primary-stops is specified.