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.
I can also pass in a complete path to the current working directory. So '' doesn't have to imply current working directory in general. You are coding in your assumptions which is fine but not the most intuitive when someone new starts working on this function.