HDF5DataLayer: read matrix of features and labels from HDF5 file as input

This is useful such that we can use Caffe for classification purposes -- for this use case, we don't usually need the image-specific considerations that DataLayer is full of.

This adds a dependency on HDF5.

Future commits will add ability to read HDF5 files partially, and to iterate over multiple files in a directory.