Resolve #1298

* use serial.load in CIFAR10._unpickle
* remove "scripts/tutorials/grbm_smd/make_dataset.py" from pep8 whitelist
* refine serial.load for interoparability between Python 2 and 3
* remove N and np, aliases of numpy
As far as I can tell, you're changing the behavior here.
In the original, after several failures of cPickle.load, we fall back to reading the file as a string, then parsing the string.
You're making it just call cPickle.load one more time.
I believe these two behaviors are different because if one process is repeatedly writing to the file while another process is trying to read it, then reading it as a string is faster than cPickle.load and is less likely to result in the race condition failing.