Presentation compiler friendliness

Fix a NPE in the presentation compiler

We were using a TypingTransformer and we called
`atOwner` before we had called `transform`. This
meant that `currTree` was null, which was observed
when that was passed to `Context#make`.

[IDE ticket](https://scala-ide-portfolio.assembla.com/spaces/scala-ide/tickets/1001971)

-------
Return original macro application under presentation compiler.

Right now, the body of an async block suffers from diminished
IDE support: most notably hyperlinking doesn't work [1].

During the course of the blackbox/whitebox macro discussion,
we've often talked about how the former give us the latitude
to simply disable macro expansion in the IDE so we could get
these features working again, at the cost of losing domain
specific errors, such as "await must not be used under a
nested function".

But why not have our cake and eat too?

This commit detects if we are running the presentation compiler
and, after running our regular macro, returns the original macro
application. We need to annotate that tree to prevent the typechecker
from stubbornly calling our macro again.

TODO: as a performance optimization, we could just run the
"unsupported await" checks, and avoid doing the more expensive
state machine transformation.

[1] https://www.assembla.com/spaces/scala-ide/tickets/1001449-code-navigation-fails-when-macros-are-used#/activity/ticket: