Vibronic fine-structure in the S0 → S1 absorption spectrum of zinc porphyrin: A Franck–Condon simulation incorporating Herzberg–Teller theory and the Duschinsky effect