added info about smart casts to diagnostic tests
changed tests where autocasts aren't needed but are reported
due to KT-4294
don't report unnecessary smart cast on receiver
don't use data flow info while checking for receiver
receiver with smart cast is checked separately
refactoring: removed AutoCastService
used getAutoCastVariantsIncludingReceiver util method instead
rename:
getAutoCastVariantsIncludingReceiver -> getAutoCastVariants
getAutoCastVariants -> getAutoCastVariantsExcludingReceiver
while resolve 'equals' as a fake call do not throw away temporary trace
rename: checkReceiver -> checkReceivers
Check separately auto casts for nullable types.

It's necessary for functions with generics: constraint system ignores nullability divergence,
the error checks are made afterwards, the auto cast check should be made similarly.
refactoring: extracted 'recordCastOrError' method
don't report autocast on left expression in equality
if it was checked for not-null beforehand
fixed bug in 'DataFlowInfo.getPossibleTypes'

parent types should be enriched as well
fixed: smart cast of boolean variable didn't work in boolean expression
added test for obsolete task
 #KT-2336 Fixed