* Update lr_updater.py
since epoch/iteration in runner starts with 0, we shouldn't leave the latter iteration to former (12th epoch for example, with first period equal to 12) period.
* Update lr_updater.py
* Update test_hooks.py
* Add build_runner
* Parametrize test_runner
* Add imports to runner __init__
* Refactor max_iters and max_epochs from run to init
* Add assertion error messages
* Add test_builder
* Make change retro-compatible
* Raise ValueError if max_epochs and max_iters
* add ema hook
* add ema hook resume
* add ema hook test
* fix typo
* fix according to comment
* delete logger
* fix according to comment
* fix unitest
* fix typo
* fix according to comment
* change to resume_from
* typo
* fix isort
* feat: add CosineRestartLrUpdaterHook
* style: rename period to periods
* fix: bug in period 0
* feat: rename eta_min to min_lr and add min_lr_ratio
* docs: fix docstring of restart lr updater
* refactor: use annealing_cos
* docs: add docstring to annealing_cos
* feat: cosine restart lr update hook
* refactor: modify code order for unittest
* add a BaseRunner and rename Runner to EpochBasedRunner
* fix the train/val step
* bug fix
* update unit tests
* fix unit tests
* raise an error if both batch_processor and train_step are set
* add a unit test