Require trace methods on structures with fields that need tracing.

This CL checks that trace methods are declared based on the class/struct fields.
Errors are described at:
http://www.chromium.org/developers/blink-gc-plugin-errors

To avoid erroneous checks, the STACK_ALLOCATED macro can be used to
mark a structure as only allocated on the stack, and the
NO_TRACE_CHECKING macro can be used to ignore a field for the
purpose of trace checking.

BUG=334149
R=haraken@chromium.org, thakis@chromium.org, vegorov@chromium.org, wibling@chromium.org
NOTRY=true

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253389 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 253389
Don't access event_targets_ in the base class ExtensionKeybindingRegistry.

TEST=interactive_ui_tests --gtest_filter=CommandsApiTest.*
TEST=interactive_ui_tests --gtest_filter=GlobalCommandsApiTest.*

BUG=329616

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253390 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 253390