[example] fix imagenet classification typo
add human-readable labels and print output args to classify.py

- `--print_results` outputs the results to the console in addition to
  saving the npy
- `--labels_file` reads in a list of human-readable label names for
  simple inspection of output

[rewrote message and made pandas import conditional -shelhamer]
include MNIST classification labels
add grayscale flag to classify.py

see jetpaccomputer/caffe:f9cc18c035ed95c1bad508f58818d99843efaae5
define caffe.Net input preprocessing members by boost::python

define `Net.{mean, input_scale, channel_swap}` on the boost::python side
so that the members always exist. drop ugly initialization logic.
[example] add caffe to pythonpath in all examples
[example] fix example outputs

With the right input processing, the actual image classification output
is sensible.

- filter visualization example's top prediction is "tabby cat"
- net surgery fully-convolutional output map is better

Fix incorrect class names too.
[example] include prediction in classification, time on GTX 770
fix pycaffe input processing

- scale feature space after mean subtraction
- represent images as single / np.float32 even after resizing
- make input scale relative to 255

pycaffe represents images as floats in [0, 1] because of scikit-image,
but the Caffe data default is uint8 in [0, 255].

See #525.