Only use Coveralls on Travis, otherwise SimpleCov

Coveralls really does nothing except print a few annoying messages
during testing if it's not running on Travis CI. So instead of trying to
use Coveralls in this situation, use SimpleCov to get local coverage
data.
Fix error handling in Logger module

The error handling had a typo which caused an error when trying to
handle any errors in getting the logger.

This change fixes the error handling, and adds test coverage over the
relevant area (which would have caught the bug in the first place).
Fix abstract methods in OptionalReason

And add test coverage around the relevant area.
Improve test coverage in Derelict::Instance
Improve test coverage in Derelict::Connection
Add test coverage to Derelict#debug!