Pass the 'showHidden' and 'colors' params along to custom inspect() functions

Currently for objects that wish to define their own `inspect()` function have no way of knowing whether or not it should output the result with colors and with hidden variables rendered.

Now it's possible to proxy the `util.inspect()` call completely, as is done in the doc example.

Docs and test case included. Thanks guys!