Theresa May risks Tory backlash as she unveils energy price cap for 18 million households