BP pleads guilty to criminal charges over Gulf oil spill