This patch consolidates the notions of an optional parameter and a
default parameter. An optional parameter is a parameter equal to its
default value, which for a "purely optional" parameter is its "null"
value.
This allows the existing comparator and defaultValue fields to be
used enabled more complex "optional" parameters, such as empty arrays.
Depends on D133812