SI-8052 Disallow `macro` as an identifier

Note that the change could look a lot cleaner, at the cost of returning
more generic error messages. I decided that at least for 2.11 I'll keep
scalac remembering that macro was a standard identifier name once, so
that we can point out more precisely what's wrong with users' code.
typeCheck => typecheck

This method has always been slightly bothering me, so I was really glad
when Denys asked me to rename it. Let’s see how it pans out.
SI-8047 change fresh name encoding to avoid owner corruption

Previously a following encoding was used to represent fresh
names that should be created at runtime of the quasiquote:

  build.withFreshTermName(prefix1) { name$1 =>
    ...
      build.withFreshTermName(prefixN) { name$N =>
        tree
      }
    ...
  }

It turned out that this encoding causes symbol corruption when
tree defines symbols of its own. After being spliced into anonymous
functions, the owner chain of those symbols will become corrupted.

Now a simpler and probably better performing alternative is
used instead:

  {
    val name$1 = universe.build.freshTermName(prefix1)
    ...
    val name$N = universe.build.freshTermName(prefixN)
    tree
  }

Here owner stays the same and doesn’t need any adjustment.
Use t- prefix instead of si- prefix for test files
fix Stream#flatten example
SI-7880 Fix infinite loop in ResizableArray#ensureSize

This issue was triggered for values greater than Int.MaxValue/2, which
caused the computation of the new array size to overflow and become
negative, leading to an infinite loop.
Fix typos in documentation
Merge pull request #3299 from xuwei-k/stream-flatten-example

fix Stream#flatten example
Merge pull request #3254 from xeno-by/topic/typeCheck

typeCheck => typecheck
Merge pull request #3245 from densh/si/8047

SI-8047 change fresh name encoding in quasiquotes to avoid symbol owner corruption
Merge pull request #3239 from soc/SI-8052

SI-8052 Disallow `macro` as an identifier
Merge pull request #3284 from soc/SI-7880

SI-7880 Fix infinite loop in ResizableArray#ensureSize
Merge pull request #3313 from OlivierBlanvillain/upstream

Fix typos in documentation
Removes TODOs that are no longer relevant

- we don't want to do mutable updates because of complexity and JMM issues

- we don't want to add more subtypes of HashSet/HashMap to prevent
megamorphic call sites

- checking for monomorphic call site is not worth it for one virtual method
invocation