pass all keys in error objects

try #2, this just allows us to preserve any additional keys on error objects when returning them from a child in a callback.
re: the last line, it actually is not, for some reason.  omitting that line results in an error being returned (in tests, at least) with no message.  not sure why.

i can easily convert that to a for loop.

re: tests, would it be sufficient to update various error tests to pass a custom property along, rather than constructing new tests for it?