SI-4827 Test to demonstrate wrong positions assigned to constructor's default arg

As demonstrated by the attached test, hyperlinking on constructor's default arg
doesn't work (the returned tree is the parameter tree, i.e., `f`, which is of
course wrong).

Printing the tree reveals the issue:

``
[[syntax trees at end of                     typer]] // Foo.scala
[0:63]package [0:0]<empty> {
  [0:37]class Baz extends [9:37][39]scala.AnyRef {
    [10:31]<paramaccessor> private[this] val f: [14]Int = _;
    [14]<stable> <accessor> <paramaccessor> def f: [14]Int = [14][14]Baz.this.f;
    [39]def <init>([14]f: [17]<type: [17]scala.Int> = [30]B.a): [9]Baz = [39]{
      [39][39][39]Baz.super.<init>();
      [9]()
    }
  };

  [6]<synthetic> object Baz extends [6][6]AnyRef {
    [6]def <init>(): [9]Baz.type = [6]{
      [6][6][6]Baz.super.<init>();
      [9]()
    };
    [14]<synthetic> def <init>$default$1: [14]Int = [30]B.a
  };
  [39:63]object B extends [48:63][63]scala.AnyRef {
    [63]def <init>(): [48]B.type = [63]{
      [63][63][63]B.super.<init>();
      [48]()
    };
    [52:61]private[this] val a: [56]Int = [60:61]2;
    [56]<stable> <accessor> def a: [56]Int = [56][56]B.this.a
  }
}
``

In short, the default argument in `<init>` (the constructor) has an offset
position, while we would expect it to have a range position. Therefore, when
locating a tree for any position between (start=) 10 and (end=) 31, the
paramaccessor tree `f` is returned.

The next commit will correct the problem.
SI-4827 Corrected positions assigned to constructor's default arg

* Param accessor trees always have a transparent position, as they
  never exist in the source code (this avoids creating overlapping
  range positions with the constructor's parameters) - changed in
  Parsers.scala.

* The derived primary constructor should have a transparent position
  as it may contain trees with an opaque range position. Hence, the
  `primaryCtor` position is considered for computing the position of
  the derived constructor - changed in Typers.scala.

* The synthetic constructor's parameters are created using the param
  accessor tree. If a constructor has a default argument, we need to
  make sure that either the param accessor tree or the related
  constructor param tree do not both have the same opaque range
  position.
  My decision was to have opaque range positions in the constructor,
  and to always turn param accessor positions into transparent positions
  - first set of changes in TreeGen.scala.

* If the synthetic constructor contains trees with an opaque range
  position (see point above), it must have a transparent position. This
  can only happen if the constructor's parameters' positions are considered,
  which is why we are now passing `vparamss1` to `wrappingPos` - second
  change in TreeGen.scala.

Finally, below follows the printing of the tree for test t4287, which you
should compare with the one attached with the previous commit message:

```
[[syntax trees at end of                     typer]] // Foo.scala
[0:63]package [0:0]<empty> {
  [0:37]class Baz extends [9:37][39]scala.AnyRef {
    <10:31><paramaccessor> private[this] val f: [14]Int = _;
    [14]<stable> <accessor> <paramaccessor> def f: [14]Int = [14][14]Baz.this.f;
    <10:31>def <init>([10:31]f: [17:20]<type: [17:20]scala.Int> = [23:31]B.a): [9]Baz = <10:31>{
      <10:31><10:31><10:31>Baz.super.<init>();
      <10:31>()
    }
  };
  [6]<synthetic> object Baz extends [6][6]AnyRef {
    [6]def <init>(): [9]Baz.type = [6]{
      [6][6][6]Baz.super.<init>();
      [9]()
    };
    [14]<synthetic> def <init>$default$1: [14]Int = [30]B.a
  };
  [39:63]object B extends [48:63][63]scala.AnyRef {
    [63]def <init>(): [48]B.type = [63]{
      [63][63][63]B.super.<init>();
      [48]()
    };
    [52:61]private[this] val a: [56]Int = [60:61]2;
    [56]<stable> <accessor> def a: [56]Int = [56][56]B.this.a
  }
}
```

You should notice that the default arg of `Baz` constructor now has a range
position. And that explains why the associated test now returns the right
tree when asking hyperlinking at the location of the default argument.