Minor GentleTrainer correction
Some changes to the GentleTrainer.

- added test
- .fit() is now a generator
- and thus we do not need a log_func anymore
More changes to the trainers.

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

- Restructured them including a general trainer pipeline.
- Modified base to accept the info dictionary.
- Added CheckpointTrainer
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
Removed dumb line
Improved padzeros function, so that it gets a smarter type.
Working version of SnapshotTrainer.

- Modified base of Breze for snapshot capability.
- Improved tests (and passed).
- Model included in snapshot. Reference or copy option.
Some work in the Trainer package.

- Trainers now take an additional argument "score", 
which can be any callable of the form f(func, data).
The idea is to supply arbitrary ways of calculating 
the score of a model, e.g. by calculating it in 
chunks more reasonable for big data sets.
- This is implemented in the MinibatchScore class in
breze.learn.trainer.score
Taking snapshots is now best done by pickling
trainers.

Tidied tests a little.
more changes on trainers

- behaviour of trainers can be customised by supplying stop, report, pause and score methods
- tests have been adapted
- climin 53b94d4 needed
more stuff on trainers. needs climim 1efbc61
some more trainer work
FIX: fast dropout did not respect info_opt
JsonPrinter now works with np arrays
merge
gp now adapted to continuation
ensemble functionality removed
added tests for distributions