Bug 925495 part 1.  Move DOMString out to a separate header.  r=smaug
Bug 925495 part 2.  Make the localName and nodeName bindings use DOMString, for extra speed.  r=smaug
Bug 882541 part 1.  Don't require all arguments after an optional argument to be optional.  r=khuey
Bug 882541 part 2.  Fix a bug that crept in with overloading a string and a nullable number and then passing in null, due to the number conversion being conditional on the input type in that case.  r=khuey

Also removes a footgun conversion operator on Nullable that was causing it to silently convert to int32_t.
Bug 882541 part 3.  Rework the overload resolution algorithm to WebIDL spec changes in handling of optional arguments.  r=khuey

The major changes are as follows:

1) The new algorithm no longer adjusts "argcount" based on the
   interaction of trailing undefined and [TreatUndefinedAs=Missing]
   arguments.  We never implemented this; just asserted that we didn't
   have to deal with this situation.

2) If the distinguishing argument is undefined and there is an
   overload that has an optional argument at the distinguishing
   argument index, that overload is selected.
Bug 882541 part 4.  Treat undefined as missing for optional WebIDL arguments.  r=khuey,ms2ger