Use cache logic similar to angular core

I've encountered that, when `$http.defaults.cache` property has been set to `true`, loading bar isn't working. To fix that issue I borrow cache choose logic from original angular $http service ([from there](https://github.com/angular/angular.js/blob/master/src/ng/http.js#L890-895)).

As you can see in new test, the interceptor now can successfully handle that case
fixes #16