Parameterized freeze/unfreeze functions for finetuning
🚀 Feature
Add an optional parameter to the freeze und unfreeze methods to define which layers should be freezed/unfreezed.
Motivation
Reduce the amount of code to freeze/unfreeze a number of layers.
Pitch
When finetuning networks we often want to freeze/unfreeze a certain number of layers for training. While it's nice that lightning comes quick access to freeze/unfreeze them all. Wouldn't it be cool it we could to that to only a fraction of parameters?
Per default the functions don't take additional parameters. We could add an optional one preferrably with different data types. Something like:

float (0.0 - 1.0) - freezes/unfreezes a fraction of parameters
int (0 - len(params)) - freezes/unfreezes the first n (last n when negative) parameters
list - freezes/unfreezes a list of parameters

What do you think?