ShadowLog.LogItem equals, hashCode, and toString.