new function molecule::CheckOrderAtSite and molecule::FragmentMolecule() abstractized
molecule::CheckOrderAtSite() just checks a given order against atom:AdaptiveOrder and whether there's still something to do for the fragmentation. MoleculeLeafClass::FillBondStructureFromReference, CreateFatherLookupTable, along with the molecule::CheckOrderAtSite are used to make the structure of molecule::FragmentMolecule clearer