Variance annotations printing

def printTypeParams is modified. Tests are updated.
val showOuterTests is removed

val showOuterTests wasn't used in Printers
toCode is added to Printers

1. Printers API is updated (def toCode)
2. ParsedTreePrinter is added to internal.Printers. ParsedTreePrinter generates the code for passed unattributed trees.
Generated code can be later compiled by scalac retaining the same meaning.
Tests for ParsedTreePrinter
Printers code refactoring and cleanup
Annotated trees processing is modified

1. Problem with multiple parameter lists in annotations is resolved
2. Tests for Annotated trees are added
Code cleanup based on pull request comments
toCode renamed to showCode
Merge pull request #3321 from VladimirNik/sprinter

Add tree-based code generation
Test edge cases of literal lifting

This also fixes failure of q”${true}” and q”${“”}” lifting.
asInstanceOf isn’t needed any more
SI-6844 SI-8076 new params api
Make implicit arg construction/deconstruction optional
SI-8148
Fix tests
Test new implicit arg support
Lift Some[T], None.type and Nil.type not just their super types
Lift Left[L, R] and Right[L, R] not just Either[L, R]
s/UnliftHelper1/UnliftListElementwise/, s/UnliftHelper2/UnliftListOfListsElementwise/