A double from Kylian Mbappe helped Real Madrid clinch a 2-1 comeback win at Villarreal to open up a three-point buffer at the top of the Spanish league.