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.
Optimize key generation in MatcherLookup further

Replace String.format with lighter string concat. In our case where 950 dependencyOverrides
are added, we observe sbt update time reduce further by 20% from 100 seconds to 80 seconds.
Fix issue in Exact Matcher with ANY_EXPRESSION to pass unit tests
Merge pull request #1 from Kewpie007/trunk

rebase from Kewpie