Task: Removing stereoatoms requires removing CIS/Trans stereo flags (rdkit/rdkit#6901)

org: rdkit
repo: rdkit
pr_number: 6901
issue_title: Removing stereoatoms requires removing CIS/Trans stereo flags
issue_body: Fixes #6900 

When we remove stereo atoms from a cis/trans bond we should also remove the CIS/TRANS stereo flags since they require stereo atoms for canonicalization.

This might not be the correct fix for this particular problem since we should want:

"C/C=C/N" to fragment with the  into "*/C=C/N" not 
"*C=CN"

However, because we removethe first bond which affects the stereo atoms in the double bond, this causes the errors down stream.

The correct fix is probably to have a custom removeBond that detects this and handles it correctly by adding the new dummy atoms to the stereo bond.

However this fix preserves the current behavior:

```
mol = MolFromSmiles("N/C=C/C")
frag1 = rdMMPA.FragmentMol(mol)

for a,b in frag1:
    if a: print(Chem.MolToSmiles(a),end=", ")
    else: print(a,end=", " )
    print(Chem.MolToSmiles(b))
```

results in 

```
None, CC=C[*:1].N[*:1]
C(=C[*:2])[*:1], C[*:1].N[*:2]
None, C[*:1].NC=C[*:1]
```
resolved_issues: number: 6900
title: MMPA FragmentMol segfaults when new stereo perception is turned on
body: For this molecule, the MMPA fragmentation runs fine when legacy stereo perception is used but crashes otherwise

```
>>> from rdkit.Chem import MolFromSmiles
>>> from rdkit.Chem import rdMMPA
>>> from rdkit.Chem import rdmolops
>>> rdmolops.SetUseLegacyStereoPerception(False)
>>> mol = MolFromSmiles("CN1CCCN=C1/C=C/c1cccs1")
>>> frag1 = rdMMPA.FragmentMol(mol)
zsh: segmentation fault  python

```


Reference solution:
fix_patch: diff --git a/Code/GraphMol/RWMol.cpp b/Code/GraphMol/RWMol.cpp
index e92e6cc5ead..d102bacaf15 100644
--- a/Code/GraphMol/RWMol.cpp
+++ b/Code/GraphMol/RWMol.cpp
@@ -468,6 +468,12 @@ void RWMol::removeBond(unsigned int aid1, unsigned int aid2) {
     }
     if (std::find(obnd->getStereoAtoms().begin(), obnd->getStereoAtoms().end(),
                   aid2) != obnd->getStereoAtoms().end()) {
+      // github #6900 if we remove stereo atoms we need to remove
+      //  the CIS and or TRANS since this requires stereo atoms
+      if (obnd->getStereo() == Bond::BondStereo::STEREOCIS ||
+          obnd->getStereo() == Bond::BondStereo::STEREOTRANS ) {
+          obnd->setStereo(Bond::BondStereo::STEREONONE);
+      }
       obnd->getStereoAtoms().clear();
     }
   }
@@ -484,6 +490,12 @@ void RWMol::removeBond(unsigned int aid1, unsigned int aid2) {
     }
     if (std::find(obnd->getStereoAtoms().begin(), obnd->getStereoAtoms().end(),
                   aid1) != obnd->getStereoAtoms().end()) {
+      // github #6900 if we remove stereo atoms we need to remove
+      //  the CIS and or TRANS since this requires stereo atoms
+      if (obnd->getStereo() == Bond::BondStereo::STEREOCIS ||
+        obnd->getStereo() == Bond::BondStereo::STEREOTRANS ) {
+        obnd->setStereo(Bond::BondStereo::STEREONONE);
+      }
       obnd->getStereoAtoms().clear();
     }
   }
diff --git a/Code/GraphMol/catch_chirality.cpp b/Code/GraphMol/catch_chirality.cpp
index c3d5c2f5849..f449aaf03de 100644
--- a/Code/GraphMol/catch_chirality.cpp
+++ b/Code/GraphMol/catch_chirality.cpp
@@ -1297,6 +1297,26 @@ TEST_CASE("ring stereo finding is overly aggressive", "[chirality][bug]") {
         Chirality::findPotentialStereo(*mol, cleanIt, flagPossible);
     CHECK(stereoInfo.size() == 2);
   }
+  SECTION("Removal of stereoatoms requires removing CIS/TRANS when using legacy stereo") {
+      UseLegacyStereoPerceptionFixture reset_stereo_perception;
+      Chirality::setUseLegacyStereoPerception(false);
+
+    {
+      auto mol = "N/C=C/C"_smiles;
+      CHECK(mol->getBondWithIdx(1)->getStereo() == Bond::BondStereo::STEREOTRANS);
+      auto rwmol = dynamic_cast<RWMol*>(mol.get());
+      rwmol->removeBond(0,1);
+      CHECK(mol->getBondWithIdx(0)->getStereo() == Bond::BondStereo::STEREONONE);
+    }
+    {
+      auto mol = "N/C=C/C"_smiles;
+      CHECK(mol->getBondWithIdx(1)->getStereo() == Bond::BondStereo::STEREOTRANS);
+      auto rwmol = dynamic_cast<RWMol*>(mol.get());
+      rwmol->removeBond(2,3);
+      CHECK(mol->getBondWithIdx(1)->getStereo() == Bond::BondStereo::STEREONONE);
+    }
+	  
+  }
 }
 
 TEST_CASE(