debugger: add backtrace()

backtrace() uses symbol names for the ELF file to output a backtrace for
the current stack.  This assumes that the frame pointer is being used
and that the initial frame pointer has the LSB set to indicate the
beginning of the stack, otherwise a limit is used for number of stack
frames.