Split GetStringContents() into a few smaller functions
Ensure previous frame is OK before printing arguments
Fix misleading argument name in AMXDebugInfo::GetTagName()

It's a tag ID, not an address.
Introduce AMXStackFramePrinter

AMXStackFramePrinter was intended to split the large and messy Print()
method into several smaller functions (for the sake of readability).
Never use return address for symbol search

Always use the caller address to find the symbol because if automata
is used somewhere in the script we will always get a wrong symbol.

See this post for why:
https://github.com/Y-Less/YSI/issues/30#issuecomment-17021342