Mark Allen beat world number two Kyren Wilson 13-9 to reach the quarter-finals of the World Snooker Championship in Sheffield.