Small improvements to pycaffe

I haven't tested these exact commits yet, although I've made the same changes elsewhere in the past.

These three commits:
* fix issue #671, by correctly defaulting mean to zero even if `set_mean` is never called,
* reorder exceptions to provide a more helpful message for non-4d blob input, and
* change checks on `channel_order` and `input_scale` so that pathological input behaves closer to expectation.

Expanding on the last point in particular:
* Right now setting `input_scale` to zero is the same as setting `input_scale` to one, due to the check `if input_scale`. Allowing the multiplication/division by zero properly breaks things or produces warnings.
* Right now setting `channel_order` to `()` or `0` is the same as setting it to the identity, due to the check `if channel_order`. Note that both of these are valid indices in numpy, although actually using them in this context is probably a mistake. Allowing the indexing will make such usages crash in most cases, instead of continuing as if the input were valid.