Introduce TerminatedArray<T> type to make data-structure used by RuleSet visible at the type level.

Before this change it was not possible to easily distinguish when RuleData represented a single item and when it represented an array.

This change is prerequisite for moving RuleSet/RuleData into the GC managed heap because tracing routines are largely type driven.

BUG=
NOTRY=true

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

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