Improves coverage load mechanism; minor fixes

Improves the .load function for coverages such that *Coverage.load will load the correct coverage based on the .coverage_type attribute regardless of the abstract/concrete used (i.e. AbstractCoverage.load & SimplexCoverage.load will result in the same type of coverage - even if it's a ViewCoverage!!)

Exposes AbstractCoverage in coverage_model/__init__.py

Provides full comparison functionality (via functools.total_ordering) for Span objects
Merge pull request #60 from blazetopher/improve_load

Improves coverage load mechanism; minor fixes
Adds recovery module
Initial commit of CoverageDoctor - for analyzing coverages and recovering from corruption when possible
Improves efficiency of analysis reporting
Starts filling in .recovery() function
Adds functionality & improves code reuse