Models and algorithms for the design of survivable multicommodity flow networks with general failure scenarios