Fix loss of bottom stack frame

It looks like the bottom stack frame is being unintentionally discarded by get_stack_info(). This should fix that, and add a simple unit test to show get_stack_info() operating over a whole stack trace.


The unit test does highlight a couple of annoyances with loss of information due to the shifting that get_stack_info() does:
  * The parameters to include calls end up as numbered items in the vars of the next function call.
  * We'll never know what parameters a_test() was called with. This happens because the value of $foo gets shifted to appear in the vars of the next function call, which doesn't actually appear in the trace since it's the debug_backtrace() call.

I'll see if I can come up with a way to record the data in a way that avoids this problem, perhaps some way to present the vars as local context for the caller rather than the callee.