Adds context management ('with ...') to coverage

Adds the ability to create/load a coverage using the context management syntax --> with … as x:  This methodology ensures the coverage is closed at the end of the with block.

Adds test_context_management
Merge pull request #88 from blazetopher/context_management

Adds context management ('with ...') to coverage
Updates CoverageDoctor repair and tests.

Aligns repair with analyze and CM work flow.
Modifies test for recovery based on new work flow.
Adds checks for corrupted file before calculating the size ratio.
Replaces original repair def with repair_metadata, renamed to repair
Removes log.warn statement
Adds timestamp to backup files.
Adds auto-rollback on repair failure.

If the repair fails the CM will be rolled-back to the pre-repair file state and backup files removed.
Adds runtime options to repair.

Adds option turn the file backup on or off.
Adds option to run in sandbox mode by turning copy_over to false.
Adds option to leave temporary coverage location intact.