tofu-infra: re-implement security group rules as a map instead of array
This solves a number of problems with security group rules as arrays, mainly the fact that when the index of a rule changes, there is a cascading of state updates that are just unneccesary noise.
Bug: T392799 Signed-off-by: Arturo Borrero Gonzalez aborrero@wikimedia.org