Optimizing String.Equals as an intrinsic (x86)

The third implementation of String.Equals.  I added an intrinsic
in x86 which is similar to the original java implementation of
String.equals: an instanceof check, null check, length check, and
reference equality check followed by a loop comparing strings
character by character.

Interesting Benchmarking Values:

Optimizing Compiler on Nexus Player
	Intrinsic 15-30 Character Strings: 177 ns
	Original 15-30 Character Strings: 275 ns
	Intrinsic Null Argument: 59 ns
	Original Null Argument: 137 ns
	Intrinsic 100-1000 Character Strings: 1812 ns
	Original 100-1000 Character Strings: 6334 ns

Bug: 21481923
Change-Id: Ia386e19b9dbfe0dac688b20ec93d8f90f67af47e
9 files changed