Added ObjectExts.ValueEquals; replaced object.Equals(,) with ObjectExts.ValueEquals where appropriate
Added equality comparer arg to EnumerableExts.[Last]IndexOf methods; fixed Contract.Requires<ArgumentException> calls