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.

it didn't matter what command I ran, it hung on precompiling assets which makes sense since this enables headhunter in all test environments regardless of whether or not you wanted to enable headhunter which would cause the assets to get precompiled (i'm guessing here, but that seems to be what happened)