Introduce builders for tracing event arguments

The builders provide interface for constructing JSON-like structure. Current implementation uses JSONValue as backing store but it may be replaced later with something more efficient without requiring to update client code.

Current implementation ensures that we create isolated copies of all strings as they may be destroyed on a different thread.

JSCallStack in InspectorTraceEvents.cpp now serializes call stack to string in the constructor instead of doing it later during tracing events serialization. Alternatively we could clone ScriptCallStack so that it contained isolated copies of all strings and do the serialization later but that seemed equally costly.

BUG=375242,361045

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

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