Judge approves BP plea agreement, record $4 billion fine