Roger Federer reaches his 12th Wimbledon final after a nail-biting match against the number two seed and long-time rival Rafael Nadal.