FLUID-5512: Fix for compound valueMapper issue, by consolidating deepEq algorithm with the one now implemented in DataBinding. 

This mildly extends the algorithm to count unchanged values as well as changed ones, and implements a new ranking algorithm and option accepted by the valueMapper named "partialMatches" which may appear on an individual option as well as on the valueMapper transform as a whole. Rationalised naming of "transform" to "transformer" as the last argument of a transform
Should we have a unit test for fluid.model.transform.matchValue to show what value is expected to be returned for what circumstance? From my experiment, the algorithm so far returns either the lowest 0 or the highest 281474959933441. When comparing these two values:
expected: {"isTooltipOpen": true, "isDialogOpen": true}
actual: {"isTooltipOpen": true, "isDialogOpen": false}
The function returned 0 where I expected a number btw 0 - 281474959933441 to be returned since these values partially match each other. Do I misunderstand?