Mark Webber overtook Fernando Alonso with four laps remaining to claim victory at the British Grand Prix - his second win in Formula 1 this season.