fix 'call-error-handler!' to handle all Throwables

Without this fix, if the on-error function throws a non-Exception
Throwable, it will bubble out and the "real" / original error will be
lost.