Assorted changes split out from the complete diff. Some have value on their own, but for the most part are only there for the new lookup.
Unit Tests Skipped
So I don't know how to name this. In the patchset I introduce vget_finish_ref later to facilitate WANTPARENT/!LOCKLEAF lookups, but I'm not going to call something like that from vref.