Fix a bunch of SetFlag usages which were potentially doing multiple unnecessary SendNetworkUpdate invokes
Add a disposable struct to be able to define a scope in which we want to listen for flag changes and then do a network update at the end of the scope if flags changed