Refactor follow redirects

- Properly handles relative URIs upon redirects
- Prevents from endless redirect loops
- Allow limit amount of redirect hops (if :follow given as Fixnum)