assert: use util.inspect() to create error messages

Currently, `JSON.stringify()` is used to create error messages on failed assertions. This causes an error when stringifying objects with circular references. This commit switches out `JSON.stringify()` for `util.inspect()`, which can handle circular references.