Factored the data storage parts out of the algorithm module and into a separate class, which also semi-intelligently manages extrapolation tables.

This new module exports a name 'dataStore', which should be used like a singleton. It can be configured via the Django settings file. The unprocessed contents of the CSVs are now stored in the HDF5, so they don't have to be parsed on every run anymore. The data store generates extrapolation tables on demand and then stores them for future retrieval. Optionally, it can also cache them in memory. (Not recommended because there's no limit or aging strategy is implemented.)

(The unit tests are still broken in this version and the Vagrant file is untested.)