Consider a pattern for dictionary arguments which must have at least one member

This is a continuation of #130.

There are a number of places on the platform that end up marking their dictionary arguments as "optional", even though they're not really optional. They just have a requirement that can't be expressed in IDL today: at least one member must be present. Examples:

I think we might have reached the point where it's worth making this pattern first-class. It would remove a bit of spec boilerplate in each spec, and it would make the IDL less confusing for readers (see e.g. whatwg/dom#332).

I suggest something like

partial interface MutationObserver {
  void observe(Node target, [OneMemberRequired] MutationObserverInit options);
};

I believe this explicitness sidesteps the problems mentioned in #130, where we were worried that people would not properly mark truly-optional trailing dictionaries as optional. You have to really know what you're doing to use this kind of extended attribute.

We could also use a keyword (onememberrequired MutationObserverInit options) for symmetry with optional. In general the dividing line between syntax and extended attributes is kind of blurry in Web IDL; see some discussion in #857 (comment).