fix(minErr): stringify non-JSON compatible objects in error messages

Fix the JSON stringification to output a more meaningful string when an
object cannot be normally converted to a JSON string, such as when the
object contains cyclic references that would cause `JSON.stringify()`
to throw an error.
fix(ngRepeat): support cyclic object references in error messages

Now that `minErr` can cope with objects that cannot be normally stringified
to JSON, just pass the error arguments straight through without trying to
stringify them first.

Closes #9838
Closes #10065
fix($rootScope): handle cyclic references in scopes when creating error messages

Use the new private function `stringify` to convert scope values to strings,
since this can cope with cyclic references and other oddities.