Novel porphyrin–viologen rotaxanes