Synthesis of heat exchanger networks: I. Systematic generation of energy optimal networks