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
I didn't see this in your earlier PR. I think it's confusing to import pickle.UnpicklingError and alias it to a cPickle object. Would you mind changing to a different solution that doesn't alias these two classes?

The confusion makes it difficult to review this PR. I am not sure what will happen if "from cPickle import BadPickleGet" fails and you end up with BadPickleGet meaning pickle.UnpicklingError, but then down below you successfully import theano.six.compat.moves.cPickle.