LogAnalyzer - support for binary logs

These commits add binary log parsing to LogAnalyzer.
The DataflashLog parsing for text logs got rewritten to fit the binary log processing.
Both take FMT messages to create new python classes Log__##NAME dynamically using type() having the members described in the FMT messages.
Access to the members is done using properties, so conversion can take place.
For text logs, data is converted when instantiating a class (str to int/float), binary logs have the proper type already but may require scaling (/100) for some fields.

For files, autodetection of type is used, for stdin a new parameter -f --format is provided, defaulting to "log" (text logs).

I do not have that many logs, and adding more logs to examples/ may help to preserve compatibility with different text log formats.