Added extract_traceback function

Create a C++ traceback from a boost::python object. Refactored get_exception_info() to return a struct of boost::python::objects instead of a tuple with magic knowledge in it. Also refactored and modularized tests some more.
I wholeheartedly agree for real classes and function parameters, where const really is your friend. A struct basically says "I'm just here for data exchange"; there is not much API that could change. Where there is no behavior, there is not that much to protect.

But there is no harm in just making the members const, and not too much value in a prolonged discussion, so I will do just that ;-).