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 don't recall exactly what it was, but they were sprockets assets that were returning. This should really check to make sure the thing is actually html I'd think. response header content type?