Extend with-foreign-slots to optionally return slot pointers

Extend with-foreign-slots so that if the var (slot) is specified as
(:pointer name) it will return the slot pointer instead of the
value. Based on a suggested macro of Chris Bagley, but there is no
need to make a new macro, as the new with-foreign-slots is backward
compatible with the old.