Add tests for observable/vetoable properties
KT-3722: Write correct generic type information for generated fields

 #KT-3722 Fixed
Simplified code.
Not recording names for SAM constructor calls since they are managed SamWrapperClasses.
Storing info about expressions which should be generated as SAM values.
Supported SAM adapters as get/set operators.
Supported SAM adapters as plus/minus/etc operators.
Supported SAM adapters in augmented assignment operators.
Supported SAM adapters in "in/!in" operators.
Added tests with SAM adapters in "invoke" convention.
Added tests with SAM adapters in comparison operators.
Supported SAM adapter in infix calls.
Minor. Static import.
Minor. Shorter code.
Added toString() implementations.
Added test which should be enabled after fixing bug in front-end.
Got rid of samAwareGen for simplicity.
Minor. Renamed method parameter.
Handling null correctly when wrapping function in SAM wrapper
Merge remote-tracking branch 'jb/master' into master2