gencgc: More precise conservatism for pointers to boxed pages.
* The commentary for possibly_valid_dynamic_space_pointer()
claims that it matches unboxed return addresses (to within code
objects), but this turns out not to be the case.
* Fix the code to match the comment, at least somewhat, by
checking to see if the object found is a code object and
shortcutting the full validation if it is.
* And, now that we have a version of p_v_d_s_p() that does the
"right thing", or at least close to it with respect to the only
truly unboxed interior pointers that we should have to deal with,
call it straight up instead of only for unboxed pages when we have
a true pointer type.
* Overall, this can be expected to be slower than the prior
version, but more precise in terms of rogue integers in the heap
range. The remaining conservation effects would be due to the
fact that we can't move ANYTHING that's a conservative root and
stale pointers within our active area (truly precise ports are
less affected by this because they can relocate objects pointed to
by stale pointers).