Salford edge past Warrington to reach first Challenge Cup final in 51 years