- Sentence parameter passed as option sentence/1, most of the times we don't need to
  match it, and also is ambiguous with Caller when expanding goals.

- Added parameter caller/1, which is vaild in goal expansions, to avoid
  ambiguities with sentence/1 parameter.
Minor optimization if Level is sent
Implemented rename_variables/2, which is better than to use rename_variable/2 several times