Federal judge OKs $20.8 billion BP oil spill settlement