Follow http 301 permanent redirects by using a future::loop_fn. It's kinda funcky, match_status still returns status_codes as erros and a new DataError Variant had to be added to distiguise when we should Loop::Continue. This could be cleaned up a lot.