Crewe net dramatic equaliser as Port Vale extend lead at top