Self-assembly and evolution of homomeric protein complexes.