Rafael Nadal beats Roger Federer to reach Australian Open final