Fixed `var_export does not handle circular references` issue

Previously `var_export does not handle circular references` was displayed when circular structures that failed an argument's expectation were passed in.

This patch still favours `var_export(...)` where possible for readability, but falls back to `print_r(...)` for circular structures.

I've just used a simple `try / catch` for the circular-reference detection (the failure of the `var_export(...)` call) for simplicity.