move data slicing to data provider
separate several components out of trainer

extract checkpointdumper, dataprovider, fastnet out of
trainer
reconstruct trainer, under test

modify trainer, minibatchtrainer, layerwisedtrainer, catetrainer,
       haven't touch disttrainer
modify distTrainer based on modified trainer