Non-covalent synthesis in aqueous solution of discrete multi-porphyrin aggregates with programmable stoichiometry and sequence.