CI: network tests running even with "not network"
While looking into windows timeouts, noticed network tests were still being run with -m "not network". `tm.network` adds the keyword `network`, but does not add a mark, so -m "not network" was still running network tests.  While a mark could probably be set somehow in that decorator, I couldn't find a `pytest` documented way to do that.

Instead, this pushes `pytest_runtest_setup` into `pytest_collection_modifyitems` (which I think is more intuitive since we know if a test should be skipped or not at collection time, and shouldn't need these skip checks at setup-time for each test).

The other reason for this change was that `pytest_runtest_setup` is too late in the pipeline to add the network marker. By moving the skip logic to `pytest_collection_modifyitems`, we can consolidate the skip checks with adding the corresponding marker if the "network" keyword is found.
