Added check for incompatible variance modifiers and repeated modifiers
Updated type approximation tests after variance modifiers check
Added captured type approximation tests for several variables
Minor: added a comment
Simplified signatures propagation for vararg types
 (do not change flexible types)
Make vararg argument of java annotation have 'out' type
++Refactoring. Moved error checks (for abstract, super)