add comments for disable tracing in timer handler issue

We can use perf_swevent_(get/put)_recursion_context to
slove this issue, but need to export perf_swevent_put_recursion_context
function firstly, since ktapvm is a kernel module.

Signed-off-by: zhangwei(Jovi) <jovi.zhangwei@gmail.com>
introduce ktap_btrace object for backtrace() built-in function

ktap_btrace object is used for backtrace() built-in function.

When you call backtrace(), it will put backtrace into temp
per-cpu buffer, if user put backtrace() into associative array,
it will first lookup same backtrace in table key, if not found,
then ktapvm will clone the backtrace() temp buffer into a new
allocated buffer, so ktap_btrace object have a little different
with ktap_string and other object.

This patch also introduce a new field of global_state G(ks)->error,
to separated from G(ks)->exit, this try to slove normal exit(kp_exit)
vs. exceptional exit(called by kp_error), for normal exit,ktapvm
should invoke trace_end closure, for exceptional exit, ktapvm should
not invoke trace_end closure.

Signed-off-by: zhangwei(Jovi) <jovi.zhangwei@gmail.com>
add sample script scripts/stack_profile.kp

This sample script is purpose for sample system stack per 10us,
we can use this script to make a flame graph.

Signed-off-by: zhangwei(Jovi) <jovi.zhangwei@gmail.com>