Track reasons for |Node::SetNeedsStyleRecalc|

Based on Eric Williger's patch: https://crrev.com/89783003

This CL tracks reason for invalidating style on each |Node::SetNeedsStyleRecalc|
call. This enables devtools/about:tracing to show the Blink internal reason why a
style invalidation was triggered.

This patch introduces a new |reason| argument to |Node::SetNeedsStyleRecalc|
method. The argument type |StyleChangeReasonForTracing| is actually a typedef
to |const char[]|. The string itself is instantiated on separate cpp file for minimal
binary size. This pattern is borrowed from
src/extensions/common/manifest_constants.h (Thanks jyasskin@!), and similar
pattern can be found in Blink Source/core/inspector/InspectorInstrumentation.h,

BUG=316388,410701

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

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