Add MNIST support to classify.py script

For a beginner's guide to Caffe I'm working on, I need a simple way for newbies to train their own network, and then try it out for themselves. The MNIST documentation is great for the training part, but the python scripts for running forward prediction on images was missing a couple of features I needed:

* Human-readable output. The only option was to save to a serialized file which didn't give any indication of how well the recognition process had worked. To solve this I followed the web demo example, adding a --print_results option that then pulls in a labels text file set by --labels_file (defaulting to the Imagenet one) and writing out the top five scoring categories. I also added a simple labels file for the MNIST results.

* Grayscale support. Several places in the scripts assume there will be three channels, so I had to add a --force_grayscale option that ensures the single-channel image that MNIST expects is created, and add some logic to avoid altering that (and subtracting a mean image) when the option is in effect.

To test that it didn't break the existing Imagenet functionality, I've been running this command:
`python python/classify.py --print_results examples/images/cat.jpg foo`

The results continue to be the expected 'kit fox' label.

Running an MNIST network created from the tutorial against a sample image is done with the command line:
`python python/classify.py --print_results --model_def examples/mnist/lenet.prototxt --pretrained_model examples/mnist/lenet_iter_10000 --force_grayscale --center_only --labels_file data/mnist/mnist_words.txt --images_dim 28,28 data/mnist/sample_2.png foo`

I think it would be a big help to new users if they could quickly try out networks and see results, so I hope this makes it in.