Reshape single input batches for inputs of varying dimension

To feed inputs of varying dimension, the DATA layer reshapes its prefetch and top blobs when the batch size is 1. This is useful for models of variable input size, such as fully-convolutional models.

By the grace of #594 this is a simple change.
The `Datum` isn't stored with the proper dimensions and it's only set right when decoding? Shouldn't encoding / decoding be isolated to the `data, float_data` fields?