B.xs: rationalise all methods aliased to next()
The code for B::OP::next() actually implements all B::*OP::* methods
that work by directly returning a field at a known offset in the OP
structure. Methods that can't do direct access usually have their own
body, rather than sharing with next().
However, whether a method can do direct field access is often dependent on
threading and/or perl version; so the same method is sometimes implemented
by next(), and sometimes by one or more individual method bodies. This is
all very confusing.
This commit takes all methods that *may* be implemented within next(),
and makes them always implemented by next(), using a table of data that
describes each method's offset, or -1 if it needs special handling.
This makes it a lot easier to see what's going on, and will also make it
easier to add an overlay facility, which will be coming soon.
The following commit will consolidate the remaining B::*OP methods within
next().