DevTools: Do not crash or hang on console.log()

Now we try to build a string representation of a V8 value without causing side
effects. In 99% cases this will be the same result as before, but we won't crash
or hang any more in 99% reported cases.

The crash still possible if redefined, for example, function.toString().
Would have been ideal if V8 also exposed FunctionProtoToString, RegExpProtoToString and etc.

We use V8's ObjectProtoToString on almost all Objects and mimic V8's ArrayToString on small
arrays. For other types we call ToString.

BUG=391475
R=yurys

Review URL: https://codereview.chromium.org/388093002

git-svn-id: svn://svn.chromium.org/blink/trunk@178449 bbb929c8-8fbe-4397-9dbb-9b2b20218538