Somewhat simpler exception propagation solution.

Made this change after reading Assimulo's Sundials Cython interface code

If calldata is a class, fields can be objects, and Cython will handle
all the reference counting.