Fix exception line number

The `saxo.pipe` decorator returns an unhelpful line number when an exception is thrown. The line number typically corresponds to the resulting line in the `main` function that threw the exception. This pull requests alters the behaviour so that the line number corresponds to the original line that threw the exception.