Improve the code constructing unique sub identifiers

For now it only adds the file name to all unique sub names, in a followup
commit will add the definition line for special subs (__ANON__, BEGIN, ...).
Store the line with the first statement of a function in the profile

The main use is to have an unique(-ish) sub identifier for subroutines without
unique names, such as BEGIN and __ANON__, it's also useful in the report
generation.
Check that MY_CXT.eval_seq is set before using it to save eval code
Only hook entereval if we hook the runloop
Use scope hooks to save eval source code

While scope hooks are experimental, the solution is cleaner and more robust
than hooking entereval, and it also allows saving source code which is evaled
in modules that have been loaded before Devel::StatProfiler.
Add a very basic visual test

It generates a report and asks to manually check that links/layout are correct.
Remove circular subroutine references in the report object

Replace the object reference in the caller/callee with the subroutine identifier.

Avoids the need for weak references, and simplifies the code required to handle
eval merging.