New IsPrim class for supporting ScaleInv

The idea is that primitives can now decide what to do with both normal and frozen transformations.  For most primitives the default implementation suffices; ScaleInv has a special instance since frozen transformations must be applied to the underlying object directly.