[sgen] Change the bridge interface to include richer type information on classes.

There is an additional axis to bridge processing than just if a type is a bridge or not.
It can be processing transparent or opaque.

We didn't make this distinction before and treated all types as transparent.

Opaque types means that bridge processing should stop at them. An opaque bridge, in
addition to that, means it should be reported in.

This change paves the way for bridge graph pruning.