Roger Federer and Novak Djokovic are through to the men's singles Wimbledon final, after seeing-off competition from Rafael Nadal and Roberto Bautista Agut.