Andy Murray avenges his US Open final defeat by Roger Federer with a superb win in the semi-finals of the Madrid Masters.