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