Fix bug when there were more than 10 stack frames

Need to do numeric comparisons to determine tab order
Be more precise by using null and exact comparisons
Define these functions outside the loop

They're the same for the life of the process
Avoid an exception when cleaning up

Sometimes the current line can be reported as '0' when the program is
in the middle of exiting; while END blocks are run
Kludge fix for erroneous args in eval frames

There's some kind of bug going on where Devel::Chitin::Stack is reporting
args are either:
    * ("notify_stopped", Devel::Chitin::Location=HASH(0x1234))
        As if it came from inside DB::DB where it's notifying that it's stopped
    * (Devel::hdb::App=HASH(0x234), Devel::Chitin::Location=HASH(0x1234)
        As if it came from _do_each_client() inside Devel/Chitin.pm

The tests are passing, including those that check for the args list in an
eval frame.

This fix just wipes the list if it's an eval frame.  There's gotta be a real
reason this is going on.