Support multiple levels of subclassing in `from_argparse_args`
🚀 Feature

Improve from_argparse_args methods in LightningDataModule and Trainer so that they can support more than one level of subclassing from their base Lightning class.
Motivation

Users might want to develop a custom hierarchy of subclasses to either LigthingDataModule or Trainer to deal with common/boilerplate code (e.g. systematically add common arguments to data modules like batch_size or num_workers). However, the generic from_argparse_args methods fail them in this case, and users must implement by hand a custom initialization logic.
Pitch

It would be easy to implement a recursive inspection of the parent's init signature to include its args as well until we hit the base Lightning class.
Edit: To help discuss the issue, I opened a draft PR #3316 which already implements the desired behavior.