Tools and more nets

Highlights:
* `python/examine_leveldb.py`: add option to plot label distribution to ensure labels in leveldb are shuffled
* `tools/extra/plot_training_log.py`: customized from `plot_training_log.py.example`, with the right arguments, plots the training and test loss and the test accuracy using matplotlib. What are the right arguments you ask? See...
* `tools/extra/plot_latest_and_send_to_s3.sh`: shell script which calls `plot_training_log.py` and uploads the plot to Amazon S3 so you can watch the training in near-real-time and pull your hair out trying to figure out if it's working. Here's a current example plot:

![caffe_latest](https://cloud.githubusercontent.com/assets/1332812/4296766/fe55b6ac-3dfc-11e4-9867-971da39b72ff.png)

* `make_everything.sh` quick shell script to make all the necessary caffe stuff because I always forget the various targets. `make test` and `make runtest` are currently commented out because they're not needed to run caffe
* `examples/oto_imagenet/misc.prototxt`: various different networks that I'm trying to train. More to come.
`is not None` seems more correct to me.

From [Google Python Style Guide](http://google-styleguide.googlecode.com/svn/trunk/pyguide.html#True/False_evaluations):

> Beware of writing if x: when you really mean if x is not None:—e.g., when testing whether a variable or argument that defaults to None was set to some other value. The other value might be a value that's false in a boolean context!