Refactoring and bug fixing

Here a list of things this PR addresses:
* update and fix gem dependencies
* use `fail` instead of `raise` for asserting
* use `tidy` executable in current `$PATH` if available, else fallback to gem-included version
* only check HTML-ish files, prevents errors for PDFs and other stuff
* split HTML and CSS into separate runners - allows disabling of one part  with `HEADHUNTER_CSS=false`
* use the correct url for each validation if available

Let me know which parts you like, maybe you want to cherry-pick only certain commits - which is fine with me.

I would prefer it the following way:

```
$ HEADHUNTER_HTML=true rspec # only HTML stuff is invoked
$ HEADHUNTER_CSS=true rspec # only CSS stuff is invoked
```