Hamilton wins thrilling season-opening Bahrain Grand Prix