Use equal_range for factory lookups

This patch uses equal_range instead of linear search to look up a
factory entry by name. This does require a sort, but the expected usage
is that the sort happens once and look ups happen many times.

This improves performance on Chromium's oop deserialization of
flattenables by about 10%

R=reed@chromium.org

Change-Id: I907f457a2ffb7d5b6d8261343099d982260b8415
Reviewed-on: https://skia-review.googlesource.com/96820
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
diff --git a/gn/tests.gni b/gn/tests.gni
index 18defe8..15c7c83 100644
--- a/gn/tests.gni
+++ b/gn/tests.gni
@@ -71,6 +71,7 @@
   "$_tests/FitsInTest.cpp",
   "$_tests/FlattenableCustomFactory.cpp",
   "$_tests/FlattenableFactoryToName.cpp",
+  "$_tests/FlattenableNameToFactory.cpp",
   "$_tests/FlattenDrawableTest.cpp",
   "$_tests/Float16Test.cpp",
   "$_tests/FloatingPointTextureTest.cpp",