Introduce new tracing primitive

Support new tracing primitive:

trace EVENTDEF function (e) { body }
trace_end function () { body }

Note that EVENTDEF would be compatiable with perf(see perf-list)
EVENTDEF is parsed by userspace, mostly in userspace/eventdef.c.

This high level tracing primitive is based on kdebug.probe_by_id now,
with parsed EVENTDEF.

The reason of introduce this new tracing primitive is we can
parse EVENTDEF in userspace, this will give user the power to use
debuginfo(like local variable, function arguments) which must parsed
in userspace, and also put eventdef parsing logic out of kernelspace.

From implementation point of view, this new change will make ktap
support kprobe/uprobe/tracepoint/hw_breakpoint/hw_perf_counter in a
more unified way, ktapvm don't need to take much care on what's the
event is which type, ktapvm treat all type event in a same way.

Currently this new tracing primitive only support static tracepoints,
you can use glob match for EVENTDEF, I change k(ret)probe, u(ret)probe
into this new mechanism soon.

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