BP settles $20B claim with US for 2010 oil spill