This adds new APIs and commands to deal with exceptions (mostly Obj-C exceptions):
- SBThread and Thread get GetCurrentException API, which returns an SBValue/ValueObjectSP with the current exception for a thread. "Current" means an exception that is currently being thrown, caught or otherwise processed. In this patch, we only know about the exception when in objc_exception_throw, but subsequent patches will expand this.
- SBThread and Thread get GetCurrentExceptionBacktrace, which return an SBThread/ThreadSP containing a historical thread backtrace retrieved from the exception object. Currently unimplemented, subsequent patches will implement this.
To be able to extract the exception when inside objc_exception_throw, this patch introduces a concept of "frame recognizer" and "recognized frame". This should be an extensible mechanism that hardcodes knowledge about special frames (like objc_exception_throw) where we know the ABI, arguments or other special properties of that frame, even without source code. In this patch, we only handle objc_exception_throw frame.