pycaffe: blobs and params are properties, not methods
Rename pycaffe.cpp -> _caffe.cpp in preparation for python wrapper

This commit should not break any code which does not refer explicitly to
caffe.pycaffe.
Add a pass-through Python wrapper of _caffe.CaffeNet

This commit restores caffe.pycaffe as Python code that wraps
caffe._caffe. It also renames caffe.CaffeNet as the less-redundant
caffe.Net.
Use an OrderedDict for caffe.Net.blobs
Update detector.py to use the new Net/blobs interface
Update imagenet/wrapper.py to use the new Net interface
Compile a binary to run all tests at once.
More documentation on running tests (including --gtest_filter info).
Expose layers and remove now-redundant params in Python interface

For now, only layer names and blobs are accessible, but more
functionality (layer Forward and Backward) could be added later.
Expose caffe.Net.params as an OrderedDict
Add names to the blobs returned by CaffeLayer

Even though these are redundant, this keeps the meaning of
CaffeBlob.name consistent for now, and will allow CaffeBlob construction
to be simplified.
Remove spurious constructors from CaffeBlob and CaffeBlobWrap

This prevents accidental construction of partially-specified blobs,
which could break the Python layer.
Add extra comment on vector_indexing_suite to _caffe.cpp
Fix indentation in C++ Python module
DRYing and documenting HDF5 loading code.
HDF5DataLayer source is now a list of filenames
HDF5 data now loaded into Blobs; cleaner interface
Fix a test assuming CPU mode without explicitly setting it.
Merge pull request #179 from erictzeng/test_all

Run all tests jointly in a single binary and summarize failures at the end.
relax timing checks for commodity GPUs