SBT Update performance downgrade caused by large number of dependencyOverrides

In order to keep artifact version standards following the train, we need to use SBT dependencyOverrides.
The overrides include about 950 entries long. Once we put the overrides into play, the udpate time goes
up by 4x-5x. With profiler data, we identify a severe hot spot at ModuleRules.getRules(), which consumes
>80% CPU and >900MB memmory usage in our case. The root cuase is ivy has to iterate whole rule map to
to find right matchers, so the performance is downgraded significantly when rules map is pretty large.
This patch target to speed up matcher lookup for dependencyOverrides resolution.