R2L: Post-processing functions to create fully abstracted version

"The woman softly kisses the smelly frog."  will create:
```scheme
((EvaluationLink
   (PredicateNode "kiss@8z0Rg8kPeGMzxASQqFaAVha1fKpz5rEP")
   (ListLink
      (ConceptNode "woman" (stv 0.001 0.99000001))
      (ConceptNode "frog@yqZmeYYAuFWlfOc969UVw2tCMKbOqRHd")
   )
)
 (InheritanceLink
   (SatisfyingSetLink
      (PredicateNode "kiss@8z0Rg8kPeGMzxASQqFaAVha1fKpz5rEP")
   )
   (ConceptNode "softly" (stv 0.001 0.99000001))
)
 (InheritanceLink
   (ConceptNode "frog@yqZmeYYAuFWlfOc969UVw2tCMKbOqRHd")
   (ConceptNode "smelly" (stv 0.001 0.99000001))
)
)
```

"The woman kisses the frog." will create:
```scheme
((EvaluationLink
   (PredicateNode "kiss" (stv 0.001 0.99000001))
   (ListLink
      (ConceptNode "woman" (stv 0.001 0.99000001))
      (ConceptNode "frog" (stv 0.001 0.99000001))
   )
)
)
```


Currently, "The woman kisses a frog." will generate the same thing as "The woman kisses the frog."  It is not yet clear how they should be distinguished.

Those random letters behind @ are just random 32 letters, not UUID.
Just the root of the graph with no incoming set.