Move rcall from Expr to Basic

This lets it work on non Expr objects, such as booleans, like And(Q.real,
Q.positive).
Merge pull request #2512 from asmeurer/rcall-Basic

Move rcall from Expr to Basic