Bug 958576 part 1.  Create a binding_detail namespace and move AutoSequence to it.  r=peterv

Note that we can't name this namespace "detail", because then we'd
have both ::mozilla::detail and ::mozilla::dom::detail namespaces in
the tree and various template name lookups that look for "detail::Foo"
would get confused, and the code would not compile.  C++ strikes
again.
Bug 958576 part 2.  Move FakeDependentString to the binding_detail namespace.  r=peterv

I took the opportunity to move away from the NonNull<nsAString> hack
we had for string arguments, since just passing in a
FakeDependentString works fine and callees are now less likely to
declare their arg as being of that type.

In the process of doing that, I ran into what looks like a substantive
bug in the "owning union with string default value" case: We were
doing mValue.mString.Value() without ever having constructed
mValue.mString!
Bug 962605.  Enable baseline jit in xpcshell.  r=bholley