Self-assembly of tobacco mosaic virus: the role of an intermediate aggregate in generating both specificity and speed.