Add IHashable and rework String.Equals.