More changes to the trainers.

- Restructured them including a general trainer pipeline.
- Modified base to accept the info dictionary.
- Added CheckpointTrainer