rewrite search results

search() now returns a tuple of matching needle and optionally candidates when called in array context.
'matcharea' was renamed to 'area'
the results.json now writes a diff image of the not matched needles.