Added dataset.splitter function

This function takes in a TableDataset and splits it into two, allowing
e.g. to split a given dataset into train and validation folds
Added data(), class() helper funcs to TableDataset
Added `dataset.split_by_class` utility function

Given a dataset (examples, labels and label types) of N labels, this
function will generate a table of length N, where each entry is a
torch.Tensor containing the training examples belonging to the same
class
Added `dataset.include_by_class` utility function

Create a new dataset by filtering examples by label.
Merge remote-tracking branch 'upstream/master' into mnist_valid
CIFAR10 BUG FIXES

* metadata was handled incorrectly for test set
* `normalization` is a module (not nngraph) and must call `forward`
* local_normalization was looping over all training examples, even
  when attempting to normalize the test data.
Code cleanup (removed unused variables, "local"-ized variables)
Added documentation for dataset.include_by_class
Merge pull request #1 from gdesjardins/mnist_valid

MNIST and CIFAR10