Infer a parameter name for the given parameter. The implementations of this method
should infer parameter names in such a way that the parameter names are distinct
for any given owning method.
If the implementation of this method returns null, an automatically synthesized name is used.
Parameters:
parameter - the parameter for which the name should be inferred.
Returns:
a user-friendly name for the parameter, or null if unknown