Use a best score matcher

Instead of finding a match by examining upper
bounds and lower bounds of individual specs use
a scoring matcher that scores all combinations of
candidate requirement sets and then finds the best match
among all those potential candidates to select the final
match from.

This has the advantage of finding a requirement set that
will best fit the input requirement set, removing requirements
with higher scores (less compatible) and leaving those
with lower scores (more compatible) as the better matches.

Fixes bug 1288481

Change-Id: Ic95e4d607e04c7d7d4125bc5fbb5ebf205194c0c
Merge "Use a best score matcher"