A new setting to clone trees as they pass through typed

With the intent of flushing out places that rely on the
typer mutating the trees.

Quite a few things break, although I'm not sure whether
the blame lies with this mechanism or with some true bug.

    % qbin/scalac -Yclone-trees test/files/pos/t6722.scala
    test/files/pos/t6722.scala:10: error: erroneous or inaccessible type
    dyn.foo.bar.baz.get[String]
                       ^
    one error found

    % qbin/scalac -Yclone-trees test/files/pos/t6201.scala
    test/files/pos/t6201.scala:12: error: type mismatch;
     found   : scala.xml.Elem
     required: ?{def must: ?}
    Note that implicit conversions are not applicable because they are ambiguous:
     both method toFoo1 in class Test of type (s: scala.xml.Elem)Test.this.Foo1
     and method toFoo2 in class Test of type (s: scala.xml.Elem)Test.this.Foo2
     are possible conversion functions from scala.xml.Elem to ?{def must: ?}
      def is: Unit = { (<a>{"a"}</a>).must(<a>{"b"}</a>) }
                         ^
Turn on the tree duplication by default.

Just to run through a Jenkins build to assess the damage.