Trent Boult took 3-19 and David Warner hit a half-century as Sunrisers Hyderabad beat Kings XI Punjab by 20 runs in the Indian Premier League.