Bug 810644 part 1.  Switch setTimeout and setInterval to using WebIDL callback functions.  r=smaug, sr=peterv
Bug 810644 part 2.  Eliminate the now-unused CallEventHandler.  r=smaug, sr=peterv
Bug 818050.  Teach the JIT about DOM method and getter return types so that it doesn't have to type-guard when unboxing the boxed value in many cases.  r=jandem,peterv
Bug 820665 part 1.  More WebIDL spec updates to changes in how dictionaries work.  r=khuey

Specifically, the following changes:

1) A union that includes a dictionary and is the last non-optional
   argument must actually be marked optional, just like a dictionary
   argument.
2) Disallow a union from containing both a nullable type and a dictionary.
3) Now all non-Date and non-RegExp objects can be used as dictionaries,
   including from overload resolution and union conversion.

We don't support dictionaries inside unions yet, or unions as
distinguishing args, so the spec changes to do with converting null to
dictionaries inside a union or picking the union overload if there is
a union containing a dictionary and null is the distinguishing arg
value are not relevant to us so far.
Bug 820665 part 2.  WebIDL spec updates to changes in how callback functions work.  r=khuey

Specifically, all callables can be converted to a callback, including
in overload resolution and union conversions.  We already did this for
normal callback arguments, but not the overload/union case.
Bug 820665 part 3.  WebIDL spec updates to changes in how callback interfaces work.  r=khuey

Specifically, any object that's not a Date or RegExp can implement a callback interface.
Bug 820665 part 4.  Remove no-longer-used IsPlatformObject.  r=khuey