Cache datasets by checking if file exists

Comments welcome, simply "caching" of dataset requests. Fixes #22