Use an actual identity type in AR::Result#identity_type

We should be able to rely on this object implenting the full type
interface.
Do we need to instantiate a new object every time we call this method? I think keeping the constant will drop some object allocations.