Oil giant BP has faced anger from protesters from across the world as it held its annual general meeting in London.