Send debugging messages to stderr
Delete outdated, dead code

Arguments to a foreign predicate are resolved before invoking the
foreign code.  There's no need to resolve the variables again.

This code was probably left over from early days when call/* was one
of the first foreign predicates.
Factor out Callable interface from Term

Some old methods of Term didn't apply to all implementers of that
interface.  Specifically, methods that applied to callable terms
(atoms and compound terms).  By separating the two interfaces, it
becomes easier to add new implementations.  The type system also
conveys more information about what I intend.

There are far more type assertions in this new code than I'd like.  As
I gain experience with these new interfaces, many of those will
disappear.

Incidentally, this commit was a giant yak shave.  The nominal goal is
to add support for arithmetic evaluation.  To make that feasible, I'll
need a Number interface.  It doesn't make sense to create that until
the other interfaces are correct.  Now I can start back to work on
arithmetic.