Enable TypeError for dictionary members of non-nullable interface type

In dictionary_v8.cpp, the extra null check was wrong or redudant
depending on nullabilty:

 * If the member isn't nullable, then passing null should throw
   TypeError.

 * If the member is nullable, then a null check is already emitted
   earlier, and so that part of the condition is always true.

The affected dictionaries were identified by looking at the resulting
changes in the generated bindings. Any affected member was made nullable
so that this change in itself is not observable, but the right behavior
is achieved if those changes are individually reverted.

A few cases that were not given TODOs:

 * MessageEventInit, because the existing TODO is appropriate.

 * MediaStreamEventInit, because it has no spec and MediaStreamEvent's
   corresponding attribute is already nullable.

 * SpeechRecognitionEventInit, because it has no spec.
   SpeechRecognitionEvent's attributes were made nullable because they
   can now in fact be null.

A number of spec issues were discovered, linked with the TODOs.

BUG=647693

Review-Url: https://codereview.chromium.org/2342393002
Cr-Commit-Position: refs/heads/master@{#419344}
21 files changed