Clinical Federer beats Kudla to set up Coric final in Halle