Allow resolvers to specify WHY they failed

Request for comments/changes

Resolvers may return ```self.unresolvable(code, message)``` when they fail to resolve a valid url to allow the calling addon to take additional action based on the reason for failure.

This allows for things like automatically reporting links as broken when they've been pulled down as they're processed and without bothering the user.

```self.unresolvable()``` always evaluates to ```False``` so it shouldn't break any existing implementations