SI-6591 Reify and path-dependent types

Reification scheme changed. Now Select an SelectFromTypeTree trees
reified appropriately, as Select and SelectFromTypeTree accordingly.
Packages and Predef object was excluded in order not to break the
existing reification scheme and not to break tests which rely on it.

Reified free terms can contain flag <stable> to make reified values
become stable identifiers. For example in the case of
reify_newimpl_15.scala

    class C {
      type T
      reify { val v: List[T] = List(2) }
    }

class C reified as free term C$value, and List[C.T] becomes
List[C$value().T], so C$value.apply() need to pass stability test
isExprSafeToInline at scala.reflect.internal.TreeInfo. For this purpose
special case for reified free terms was added to isExprSafeToInline
function.

test run/reify_newipl_30 disabled due to SI-7082
test t6591_4 moved to pending due to SI-7083
term and type reftrees are now reified uniformly

Top-level (i.e. owned by a package) => Ident(symbol)
Nested (i.e. owned by an object or a package object) => Select(owner, symbol)
Inner (i.e. owned by a static class) => selectTerm/selectType(owner, name)
Non-locatable (i.e. everything else) => see GenTrees.scala for more details

Changes w.r.t the previous approaches:
  * Top-level refs are no longer reified as Select(This(package), symbol).
    Proposed reification scheme is as resistant to resetAttrs as previous one,
    but is at the same time much shorter.
  * Refs to definitions from package objects are no longer Ident(symbol).
    Otherwise reflective compilation of things like `_ :: _` fails.
  * Contents of Predef._ and scala._ are no longer treated specially.
    This increases the size of reificode, but is more hygienic.
accommodates pull request feedback

https://github.com/scala/scala/pull/2072
Merge pull request #2094 from scalamacros/ticket/6591

 SI-6591 Reify and path-dependent types