Try real hard to surface error details
Some environments do not report `Error#cause` or `AggregateError#errors`. Or if they do they may not report them when
deeply nested (e.g. with Node's default `util.inspect` implementation).
To work around this, on node.js we now monitor uncaught exceptions and report them in matter.js logs using matter.js's
formatting. We also offer error formatting via `MatterError#format()` and provide a custom inspector for node.js.
Includes related improvements:
- Modifies object formatting so it's available outside of logging
- Adds more comprehensive tests for error formatting logic