World champion Kyren Wilson won his third snooker title of the season in Berlin by beating Barry Hawkins in a thrilling final.