bindings: Adds a new IDL extended attribute "NotScriptWrappable".

Adds a new IDL extended attribute "NotScriptWrappable", which is inheritable.
This attribute is needed for WIP http://crrev.com/478243002 .

New macro DEFINE_WRAPERTYPEINFO in the above CL will introduce a new virtual
function and static data member in all the derived classes of ScriptWrappable
as follows.

  // in T.h
  class T : public ScriptWrappable {
      DEFINE_WRAPPERTYPEINFO();
  };

  // What the macro generates
      static WrapperTypeInfo& s_wrapperTypeInfo;
      virtual WrapperTypeInfo* wrapperTypeInfo()
      {
          return &s_wrapperTypeInfo;
      }

And the IDL compiler will generate the following code snippet for each derived
class of ScriptWrappable.

  // What the IDL compiler generates
  const WrapperTypeInfo& T::s_wrapperTypeInfo = V8T::wrapperTypeInfo;

Since the other classes which don't inherit from ScriptWrappable don't declare
s_wrapperTypeInfo, the IDL compiler must not generate this line of code.

The above line of code will be guarded by {% if is_script_wrappable %} introduced
in this CL.

BUG=235436

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

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