testsuite: introduce functions in main

well, it has been too long since the main was not correctly handled.
Introduce some functions to get sth readable.
No semantic changes (hopefully).
refactor the hid database and expected evemu

The current implementation implies that each test does its own
analysis to know if it should be run or skipped, and against which
evemu dumps it should compare. This does not allow a rapid check of the
database, and makes the total count number change over time.

This huge patch first creates the database of the association of the hid
devices and their corresponding evemu dumps, then launch the different
tests if they are not skipped.
testsuite: organize the results

first show the skipped, then the successful without warning, then those
with warnings, and finally the erroneous ones.
compare_evemu: create class for the evemu parsed object

so that we can handle a better parsing of the description later
compare_evemu: parse the version
compare_evemu: handle the name as a special case in the description
compare_evemu: handle parsing of absinfo

This helps comparing evemu files 1.1 and 1.2 by dropping the resolution
bit when it is not available.
Also, we use the same code to match the descriptions in compare_sets
and compare_files now.
testsuite: beautification of the final output
compare_evemu: fix missing EvemuFile
compare_evemu: output a warning if the versions do not match
compare_evemu: fix special handling of slot in absinfo

The slots are tested in the absinfo, not in the rest of the desc
compare_evemu: fix 'data' in compare_sets
compare_evemu: fix missing warning in return value
compare_evemu: fix missing .frames

[1] is the old access. Now we have pretty objects.
compare_evemu: evemu files without version number are 1.0
compare_evemu: fix missing EvemuFile
compare_evemu: fix various outputs

- missing to output in case of a change in the description
- fix missing \n when dumping the description
compare_evemu: add missing name in dump_diff
compare_evemu: handle ids in a special case

allows us to drop the fw_version, as this is not handled by hid-replay.
compare_evemu: add missing absinfo outputs in dump_diff