Improve Scala 2 macro error handling
Improve Scala 2 macro error handling

- Use startPos as the position to avoid error messages printing many
lines of codes.
- Use tree.tpe when the tree is replaced by a throw to avoid breaking
  type inference.
- Mention the existence of -Xignore-scala2-macros.

lampepfl/dotty,som-snytt/dotty,sjrd/dotty,dotty-staging/dotty,som-snytt/dotty,lampepfl/dotty,dotty-staging/dotty,sjrd/dotty,sjrd/dotty,som-snytt/dotty,sjrd/dotty,lampepfl/dotty,dotty-staging/dotty,lampepfl/dotty,sjrd/dotty,som-snytt/dotty,dotty-staging/dotty,lampepfl/dotty,som-snytt/dotty,dotty-staging/dotty