Add back SimpleCov

This partially reverts d3ae38c88841fd1f29e5edc90b4c9f6738234a7b with the
following differences:

Configure the SimpleCov behaviour so that it doesn't report coverage
when `rake` completes and acts only as a 'red light' if coverage drops
significantly (by 20%) or drops below a percentage (80%).

Note that to silence the 'Coverage report generated for' message that
reports the coverage percentage when SimpleCov completes, we
monkey-patch the SimpleCov::Formatter::HTMLFormatter class.

Also, `SimpleCov#result.format!` is called by default when SimpleCov
exits[1], so there's no need for us to explicitly call it.

The SimpleCov::Formatter::HTMLFormatter#output_message _only_ prints the
'Coverage report generated for' message, so by monkey-patching it we
don't lose the other warnings that we want to keep (mentioned above).
Pin SimpleCov to version 0.7.1

Pin SimpleCov to version 0.7.1 to avoid the bug in SimpleCov 0.8.x
affecting exit codes:

https://github.com/colszowka/simplecov/issues/281

Note that I had to change `profiles` to `adapters`, as the naming
changed in version 0.8.0[1].

[1]:
https://github.com/colszowka/simplecov/commit/60f4717c39dd6919d18f263c689f7d75738d6ce8#diff-4ac32a78649ca5bdd8e0ba38b7006a1eR16