LogAnalyzer: Initial commit for discussion

A lot of this is still stub code, but far enough along for discussion
and feedback. Some good example tests are TestVibration and TestBrownout

datatypes handled correctly now (previsouly all read as floats), added
flag to skip bad input lines, now prints some general log info (size,
duration, etc), added some basic performance timing,
LogAnalyzer: added PM slow loop check, first version of xml output
LogAnalyzer: adding Roberts bad PM performance log
LogAnalyzer: changed command flags a little, tidy, started on TestPitchRollCoupling
LogAnalyzer: added test for dupe log data
LogAnalyzer: fixed plane+rover parsing, added test for underpowered copters
LogAnalyzer: added BETA feedback info to output
LogAnalyzer: added unit test, started moving from dictData to listData

added unit test, started moving from dictData to listData, cancelled
pre-3.0 log reading, separated DataflashLog constructor and read() call
LogAnalyzer: added GPS glitch detection to GPS test
LogAnalyzer: report skippedLines, cleaned up DataflashLog.read() error handling
LogAnalyzer: combined statusMessage and extraFeedback
LogAnalyzer: added LogIterator, copter roll/pitch > max lean angle test,
LogAnalyzer: added --verbose flag, added test for MAG interference
LogAnalyzer: detect all zeros in MAG X/Y/Z data
LogAnalyzer: added check for binary log files (can't parse yet)
LogAnalyzer: escape strings in XML output
LogAnalyzer: added 'import collections', allowed for some AC3.2 logging changes
LogAnalyzer: fixed XML output glitch in the case of a skipped (NA) test
LogAnalyzer: renamed 'logs' folder to 'examples'

as per Craig’s request
LogAnalyzer: renamed PASS to GOOD in output (and enums)

as per Craig’s request to clarify test output