Controlling the length of porphyrin supramolecular polymers via coupled equilibria and dilution-induced supramolecular polymerization