[Fix] schedulers with no max_steps param
All LR schedulers in PyTorch do not have the `max_steps` parameter, so we should not add `max_steps` to their `scheduler_args`. Previous code tackle the problem in case-by-case manner, while here we try to solve the problem in a more general way. 

To do so, we define a set of schedulers that don't have the `max_steps` parameter, and set the `add_max_args_flag` accordingly. 

Similarly, we define a set of epoch-based schedulers to set the `interval`, while previous code only checks for `ReduceLROnPlateau` scheduler.

Besides, the previous code also has bugs, since it doesn't set the correct `add_max_args_flag` and `interval` when `if 'args' in scheduler_config` is `True`.