Reduce random casting in looks_like_valid_lisp_pointer_p().
* The casts are ugly, and obscure the logic.
* The casts are WRONG on systems with 64-bit pointers and 32-bit
long integers (thanks to akovalenko for pointing this out).
* We already have utility functions to do most-to-all of what
we're doing with casts.
* And we never use one of our (lispobj *) parameters as an actual
pointer, we always cast it all over the place instead.
* So, take a lispobj instead of a (lispobj *), and use utility
functions from runtime.h instead of inline casting and random
pointer arithmetic.