Some IVAR indices are special in that they have global meaning across
multiple buses where as other IVARs are always private to the local bus.
Try to document this a bit and add constants for the various ranges to
avoid future conflicts.
This is mostly a no-op except for some buses that started their IVAR
indices at 1 instead of 0. Those buses now start at 0 after this
change. Also, IVAR indices are now generally defined as enum's as
that makes it easier to define them.