When we annotating a function header so that it could be used by other TU, we also need to make sure the function is parsed correctly within the same TU.
So if we can find the function's implementation, ignore the annotations, otherwise, false positive would occur.
Move the escape by value case to post call and do not escape the handle if the function is inlined and we have analyzed the handle.
Tests: unit test.
The analyzer has complex logic to decide when to "inline" a function. In this context, inline means to analyze the body at this call site (not actual inlining). Unfortunately, the analyzer might not inline a function even when the body is available (e.g. when running out of some budget like max call stack). Moreover, it might inline functions without a body (see BodyFarm for details). The bottom line is that having a function body is not a good proxy to determine whether a function body will be analyzed or not. Fortunately, it is much easier in the post-call statement as we can observe after the fact whether inlining was done.