JSRef<T> & Root<T> contains '*T' instead of RefCell.
JS<T> contains '*T' instead of RefCell.
Make 'Cell<JS<T>>' traceable.
Make 'RefCell<Vec<JS<T>>>' traceable.
Use Cell/RefCell for interior mutability of Attr, AttrList, Blob,
BrowserContext, ClientRect, and ClientRectList.
Make 'Cell<Option<JS<T>>>' traceable.
Use Cell/RefCell for interior mutability of Element.
Implement OptionalSettable for 'Cell<Option<JS<U>>>'.
Use Cell/RefCell for interior mutability of Event.
Use Cell/RefCell for interior mutability of FormData, BlobData.
Use Cell/RefCell for interior mutability of MouseEvent.
Use Cell/RefCell for interior mutability of NodeList, Performance, TestBinding, and ValidityState.
Use Cell/RefCell for interior mutability of UIEvent.
Use Cell/RefCell for interior mutability of XMLHttpRequest.
Use Cell/RefCell for interior mutability of Window.
Use Cell/RefCell for interior mutability of Node.
Use Cell instead of RefCell for Page.fragment_node.
auto merge of #2490 : saneyuki/servo/js, r=jdm

This only change to make `JS<T> ` to a POD type about #1854, except using `Cell`/`RefCell` for interior mutability.

Fix #1854

@jdm r?