Clean up V8 bindings template code

This patch makes some of the V8 bindings templates a bit cleaner. Specifically:
 - Uses custom filters for the attribute list to duplicating complicated logic
   between for loops in the template and extra booleans defined in python.
 - Adds a unique_by filter to simplify the uniqueness logic in the templates.
 - Makes consistent use of the 'runtime_enabled' filter.
 - Combines for/endfor and if/endif tags into single for-if/endfor tags.
 - Makes use of the jinja2 'groupby' filter to clarify the complex logic for
   collecting and grouping runtime features by name.

It has a couple of visible side effects; mostly removing some extra generated
blank lines, and removing an unneeded extra brace pair in v8_dictionary.cpp (and
adjusting indentation appropriately). The text expectations have been updated to
match.

TBR=chasej@chromium.org

Review-Url: https://codereview.chromium.org/2000483002
Cr-Commit-Position: refs/heads/master@{#395067}
22 files changed