Get coverage data for files with no .gcov as well
Make a struct for the return values in the match functions.

A lot cleaner and easier to add new stuff this way.
Some refactoring of the matcher code.

Made the return value for the matcher functions a match_result_t struct instead.
Also the match_state_t saves that. This will now also contain images of the more
detailed steps the matching algorithms does for debugging. Not sure if cloning
so many images will give a performance penalty or not yet however.