* Add initial tracking of states in Trainer.
* Add INTERRUPTED state, improve tests, move state switching from callback to a trainer.
* Move part of a trainer state switching to a decorator.
* Add documentation.
* Fix docs, rename state enum, restore state to previous on exit if None, add tests for decorator only.
* Fix callback typing.
Co-authored-by: William Falcon <waf2107@columbia.edu>