Ben Shelton ended Alex de Minaur's seven-match winning streak to book a place in the Canadian Open semi-finals