initial commit of repo + dataprovider stuff

There are a couple of things to understand before merging this:

A) Why does the model example of the dataprovider's get_data_dims method look the way it does?  with the "idx" parameter?

B) Do we really need to output files with the data?  Or is it merely good enough that the data provider method return the data?    If the former, then I'll have to add the capacity.   I'll have to read the code more thoroughly to understand what to do. 

C) Where to do want to put the code for the specific providers, e.g. for the specific datasets with specific preprocs and batch parameters?