Refactored parsing code

The files are now wrapped in Report objects which take care of the
parsing. During processing as much data as possible is extracted from the
report (by running all available regular expressions on it)
and afterwards it is further analyzed in the CrashAnalyzer class.
This allows for greater flexibility.
At the end the resulting crash object is checked for completeness to
detect changes in the crash report format and ask the user to report this.
Also added support for detecting bad reports ("CRC ERR") produced by
some iPad models.