BP report blames itself, others for oil spill