Switch to using ContravariantLifetime in JSRef<'a, T>.

Since ContravariantLifetime doesn't take up any storage space, this
means that JSRef will be a single word. This fixes #2333.
auto merge of #2435 : zwarich/servo/contravariant-lifetime, r=jdm

Since ContravariantLifetime doesn't take up any storage space, this
means that JSRef will be a single word. This fixes #2333.
Initial spec-incompliant implementation of default click action for anchor elements.

This is cherry-picked from https://github.com/mozilla/servo/pull/1688:

  * Initial spec-incompliant implementation of default click action for anchor elements.
  * Add documentation; gut the new document URL loading method
    and move it all into the new Window method.
  * Add test for default event prevention.

Original developer: Josh Matthews <josh@joshmatthews.net>