Unified Downloader

Unified Downloader's primary aim is to remove the downloading of light curve files from the Light Curve module.
This is done with help of custom clients written for LC sources.In addition VSO module is also made compatible with this. 
The downloader has same query based capability as the vso module.
Unified Downloader has a factory based implementation requiring the client to have validation class method '_can_handle_query'. 

PS: This is not pep8 compliant yet in various parts.I am working on that

I think this needs to be on the first line of the file. Also this will be user facing API docs for the whole module, so it should describe the design of the module, i.e. one factory class, with an instance in the module, which provides search ability, then the clients can register with the factory and define a `_can_handle_query` method, etc.

Basically write lots of developer docs here.