Allow to use http basic authentication and custom headers

I'm unsure about this one, it was extracted from my private fork and is not used in production.  Right now we maintain IP access list with list of servers which are allowed to modify files, but this becomes problematic with more and more servers added.

The patch is not finished - there is no way to specify headers in settings or via DistributedStorage instance. It does not break existing tests, but I haven't tested it after extraction from my fork.

It manually constructs Authorization header in order to avoid double HTTP requests.

What is your opinion on this feature?