Attempt at manually handling redirects

Titanium fails with redirects on some services. Seems there are bugs in the code. So this is an attempt to handle them manually.

## Specs

    FileLoader#download
      ✓ rejects the promise when network unavailable
      ✓ rejects the promise when there is a network error
      ✓ resolves the promise when file data has been written
      ✓ queues requests with a throttle limit
      - notifies promise while receiving network data
      ✓ handles HTTPClient options
      with cached files
        ✓ resolves when file is cached and not expired
        ✓ requests new file when cache is expired
        ✓ does not write file when data has not changed
      Redirects
        ✓ does not use the built-in autoRedirect option
        ✓ uses the built-in cache option (304 redirect support)
        ✓ handles 300 redirects
        ✓ handles 301 redirects
        ✓ handles 302 redirects
        ✓ handles 305 redirects
        ✓ handles 306 redirects
        ✓ handles 307 redirects
        ✓ handles more then one redirect
        ✓ will not allow more then max redirects
    
    18 passing (336ms)
    1 pending