Support using binary search for looking up enum identifiers.
Currently looking up identifiers (from Python arguments for example)
loops over each item comparing their string.
This patch adds a lazily initialized order field to the EnumProperty
that can be used for a binary search.
This is only used for static enums.
This patch is to check if it's worthwhile to use a binary search for enum lookups.
In practice it's there is almost no real-world difference, loading key-maps is almost the same speed (under 1ms faster).
Accessing the last icon in the icon enum (with over 900 items) is over 70x faster in an isolated/artificial benchmark.
This would help prevent performance issues if larger enums are added in the future.