Added a md5 check to each dataset.

So as Elef suggested somewhere in the comments, I added a check for the md5 of each dataset in fetcher.py (+ minor other random stuff). Everytime the dataset needs to be download, it will check against a precomputed md5 to see if they match, as well as everytime the dataset is loaded.

This is valid for the bval, bvec and nifti file. Of course new dataset can use the function check_md5 in the same fashion once their md5 are computed by an external program.

Regarding this, I use the open function in binary in the hope that it is platform independent. Since the md5 is on the raw data, could this be an issue and give incorrect md5 sums everytime? I tested this on an ubuntu 12.04 64 bits machine, so if anyone could test it (ust run all the read and fetch function in fetcher.py, they wil print an error if a mismatch is found).

Also, the precomputed md5 were done on the files in my computer, so if they were already corrupted, the md5 reported as being the validation is also wrong. You can run all these functions in order to verify the md5.

I also used md5sum from coreutils (a pretty standard linux package probably included everywhere) to compute the original md5, so you can double check them, or even use another tool just to be safe.