KT-4579 Make Type Explicit/Implicit in Lambda

Link: http://youtrack.jetbrains.com/issue/KT-4579

These 2 intentions is applicable to lambdas(anonymous functions) which have undeclared or explicit types for their parameters/receiver/return.

I think there is probably a lot of room for improvements as a lot is going on in the code.
For now, the makeTypeExplicitInLambda intention explicitly states all deducible parameters/receiver/return type after the intention is applied, and likewise for makeTypeImplicitInLambda. Also there is currently no option for selecting what to make explicit/implicit. Do we need to have these options? If so, I am not quite sure how to implement these. Is there an existing intention that has this kind of feature(additional options)?