Raise nice errors

Applications using this gem should be able to recover from errors nicely.
Before this change, there was no (clean) way of knowing why the URL
could not be fetched.

Now you can rescue from `UrlFetcher::TooManyRedirects` or
`UrlFetcher::CircularRedirect` giving you more control on how to
respond to each scenario.

If you want to recover from either of those (and all the other custom
exceptions we might add), you can simply rescue from `UrlFetcher::Error`.
Add travis file
Move to new Rspec's format

I hate Travis complaining about old `should` stuff.
Remove more Rspec warnings
Merge pull request #1 from weheartit/nice_errors

Raise nice errors