Refactor request to hide RestClient
Refactor link_collector to handle http myself

RestClient was a cheap and easy way to handle redirects. However
it leaves no room for the linkEvaluator to determine if we should
actually follow that redirect. I handle http myself now.

This also includes a lot more complexity around errors in general.