Cherry-pick add option to save multiple data in HDF5Output

This PR allows the HDF5Output layer to save multiple blobs, as many a bottoms, and during multiple batches, each one numbered consecutively. 

This example would save `fc7` and `fc8` features plus the `label`. If there are split layers the names would be changed accordingly. Each forward pass will increment the `batch_id` and append it to the `dataset_name`
```
layers {
  name: "hdf5_output"
  type: HDF5_OUTPUT
  bottom: "fc7"
  bottom: "fc8"
  bottom: "label"
  hdf5_output_param { file_name: "temp.hdf5" }
}
```