Propagate exception object when error occurs

Users (like me) may be interested to know the underlying exception when some error occurs. This patch makes ErrorEventArgs expose a field with this exception, if it's available.