More changes to the trainers.

- Restructured them including a general trainer pipeline.
- Modified base to accept the info dictionary.
- Added CheckpointTrainer
Merge remote-tracking branch 'origin/feature-trainer' into feature-trainer