Automate choosing sampler 
🚀 Feature
Let's automate choosing the sampler.

Case 1 (DDP, training):
Default to distributedSampler
sampler = DistributedSampler(dataset)

Case 2 (training):
sampler = RandomSampler(dataset)

Case 3 (val, test):
sampler = SequentialSampler(dataset)

Case 4 (tpu, train, val, test):
xm.DistributedSampler(dataset)

Motivation
Samplers are hard and should be automated.
@srush