SI-5314 - CPS transform of return statement fails

Enable return expressions in CPS code if they are in tail position. Note that tail returns are
only removed in methods that do not call `shift` or `reset` (otherwise, an error is reported).

Addresses the issues pointed out in a previous pull request:
https://github.com/scala/scala/pull/720

- Addresses all issues mentioned here:
  https://github.com/scala/scala/pull/720#issuecomment-6429705

- Move transformation methods to SelectiveANFTransform.scala:
  https://github.com/scala/scala/pull/720#commitcomment-1477497

- Do not keep a list of tail returns.

Tests:
- continuations-neg/t5314-missing-result-type.scala
- continuations-neg/t5314-type-error.scala
- continuations-neg/t5314-npe.scala
- continuations-neg/t5314-return-reset.scala
- continuations-run/t5314.scala
- continuations-run/t5314-2.scala
- continuations-run/t5314-3.scala
Replace CheckCPSMethodTraverser with additional parameter on transformer methods

Other fixes:

- remove CPSUtils.allCPSMethods
- add clarifying comment about adding a plus marker to a return expression
Add missing cases in tail return transform

Disabled warnings that no longer apply because of tail returns.
Add several test cases.
Revert "Add missing cases in tail return transform"

This reverts commit 8d020fab9758ced93eb18fa51c906b95ec104aed.
Fix raw string interpolator: string parts which were after the first argument were still escaped
Simplify the adaptation of types of return expressions

Add `adaptTypeOfReturn` hook to `AnnotationCheckers`.
Move adaptation of types of return expressions from `addAnnotations`
to `typedReturn` via `adaptTypeOfReturn` hook.

This resolves an inconsistency where previously types could have
a plus marker without additional CPS annotations. This also adds
additional test cases.
Use rawflags for checking FINAL flag.

Partially reverts 18efdedfb97de7ca9f6
Restored lastNoSuccess to Parsers.

It was in 2.9.2 and can't be removed without deprecation.
Merge pull request #1156 from paulp/last-no-success

Restored lastNoSuccess to Parsers.
Merge pull request #1154 from hubertp/2.10.x-issue/5676-fix

Use rawflags for checking FINAL flag.
cleanup for macroExpand

Error reporting is moved to ContextErrors to disentangle stuff in Macros.scala.
With logics and error reporting intertwined it was an awful mess.

Exceptions are used for the same reason. Instead of threading failures through
the code polluting it with options/ifs, I outline the success path.

It worked much better for typedMacroBody, but I'm also happy with the resulting
code of macroExpand. To me a major factor towards applicability of exceptions
was that they are short-lived and that there might be max one error per domain,
after which we unconditionally bail.
Improve efficiency of updated

Added utility method to create a HashTrieSet with two leaf HashSets with different hash
Used said utility method instead of creating a temorary HashTrieSet with an empty elems array
Added assertions to HashTrieSet to validate tree
Added test that should cover all code paths of the changes done in SI-6220

This test will pass even with an older version of the scala library, since as mentioned this is just a performance improvement.
SI-5788 correct test and symbol update

Previously I thought it's fixed because I didn't include the correct
testcase. Now it's the correct testcase and this prompted me to
change the code a bit to make it work properly.
Fix for community build blocker.

As two character bugfixes go, this was a doozy.
I will forego elaborating at length and offer generic
instructions for elucidation:

% git log --grep=tpeHK
Merge pull request #1161 from VladUreche/issue/5788-hack

SI-5788 correct test and symbol update
Merge pull request #1162 from paulp/aug19-scala-graph

Fix for community build blocker.
pull request feedback
Merge pull request #1159 from scalamacros/topic/cleanup

even more cleanup in Macros.scala
Compilespeed improvements: Exists arguments and others

It turns out that exists is not inlinable, even if put into List.
We try to eliminate or hoist most closures passed to exists in Types.
There are some other small improvements as well.

--

(@gkossakowski): This commit contains also a fix to crasher
prepared by @paulp. I squashed that commit and kept the
test-case that came with it.