keep bundle annotations and prevent simple cycles

I don't see any downsides and this makes it easier to manipulate
custom annotations, introspectors, serializers, and other parts
that interact with annotated objects. The cycle detection is a
bonus.