Generate kcachegrind reports under line granularity
Callgrind reports are generated with line granularity since kcachegrind
can take advantage of the information. However, kcachegrind reports were
not being generated with that granularity, creating an unnecessary difference.
The peek command allows looking at details of a function, and it
avoids any trimming to provide full details. However, when using
tagfocus it is useful to still limit to the filtered samples.
With this change peek will honor tagfocus, but it will avoid any
other trimming.
When reconciling samples, cleanup file paths to allow functions to be
combined if their source filenames match after cleanup (eg "src.cpp" and
"./src.cpp").
Also clean up existing uses of filepath to avoid passing empty strings
to it: filepath.Base("") returns "."