Check if an expression is safe.
(check-safe-expression expr varset funtab) → results?
If successful, return the number of values that the expression yields. Otherwise, return an error.
A path always yields one result.
A literal's safety is independent from the variables in scope. A literal always returns one result.