IDL compiler: [Replaceable] (initial)

[Replaceable] is pretty complex (there's a new function in the generated
code), so I'm breaking this up into a multiple CLs.
This includes the basic functions, and some refactoring.

Docs:
https://sites.google.com/a/chromium.org/dev/blink/webidl/blink-idl-extended-attributes#TOC-Replaceable-a-

BUG=239771
NOTRY=true

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

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