Under Python, raise Python exceptions
When in a Python script an exception remains unhandled, we should raise a Python exception instead of aborting the C way.
As Artur told us under #674 (closed), this is particularly important for interactive work, e.g. using Jupyter notebooks. If the interpreter crashes, all previous computations would have to be re-run, a python exception is easy to deal with and allows re-execution of a modified model.