Refactor __init__.py
At 1200 lines and growing, the __init__.py file is too large. The dependency
list is also huge. Splitting it into more manageable units, basically one
class per file. Normalizing filenames to lower_case.
Remove use of requests class, there are problems with some compressed
files being expanded on download. Use urllib instead, as elsewhere in f-r.