Pass scripts as ~str to support non-ASCII string literals etc.

Of course scripts on the Web are not always encoded as UTF-8 and we will have
to deal with that at some point.
Convert between JS and Rust strings in a way that handles Unicode

This doesn't handle invalid UTF-16 and may not be efficient.  It's just a small
change to make things better until we decide what we're doing about strings in
the long run.

Fixes #1068.
Test non-ASCII tag names
Check for allocation failure in domstring_to_jsval
Update comment with spec link
auto merge of #1077 : kmcallister/servo/jsstr, r=jdm

This doesn't resolve the big questions of how Servo will represent strings; it's just about doing the conversion correctly for our existing types.