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.
The above would be considered unexpected behavior since the string "" is considered empty. You don't have to make any changes but there is going to be a gotcha that someone will have to uncover when they use this code in the future.