Support for caused by in node

This covers a use case someone had to capture oauthErrors (https://github.com/jaredhanson/passport-oauth2/blob/master/lib/errors/internaloautherror.js#L18)

It would be nice to have support for generic error objects so maybe I could add support for looping through the properties on an error to see if any properties are errors themselves.