Splitting utils and Subset structures

There a several utils and data-structures available to use. The most important ones are SubSet, allowing for easy data-splitting by defining a sub-set of a dataset purely based on indices, and split_data, which can perform any of the splitting functions implemented in the toolbox.