Return hex-encoded process id from the reader

Also, fix code assuming unsigned int is exacly 32 bits.
Fix crappy fragile test
Fix test that was depending on a BEGIN block in main being always sampled
Check the current frame is actually an eval frame before trying to use it as such
Perl does not always append "\n;" to eval()ed string

Also, leave a comment as to why we fiddle with the eval()ed string.
Remove useless COP line number for eval source code frame
Get eval name from PL_evalseq rather than from the first COP

There are some interesting corner cases like

    eval <<EOT;
        sub blah {
            # some code
    #line 127 "some.file"
            # more code
        }
    EOT

where the first COP in the eval code contains date derived from the #line
directive, but part of the code reports "(eval ...)" as the file name.

Since the reporting code will have to deal with embedded #line directives
anyway, always get the original eval name (from PL_evalseq) and ignore the data
embedded in COPs.

This only applies when saving code for all evals, since traced evals get the
correct file name.