Add an object literal construction mechanism.

Literal JavaScript objects like
  {foo: 3, bar: "foobar"}
can now be constructed with the syntax
  js.Dynamic.literal(foo = 3, bar = "foobar")
Of course, the `literal` method can be imported in scope with
a short name, e.g.,
  import js.Dynamic.{ literal => lit }
  lit(foo = 3, bar = "foobar")
Add js.ThisFunctionN to capture JS `this` as parameter.

The traits js.ThisFunctionN model JavaScript functions that
consider `this` as a parameter. They map to scala.Function{N+1}
where `this` is explicitly stated as a first parameter.
Merge branch 'this-function' into this-function-2.11
Add support for SAM treatment of js.ThisFunctionN.
Fix translation of JS SAMs when they are nested in other lambdas.

The class defs appearing as the result of SAMming js.FunctionN and
js.ThisFunctionN must be handled before class defs that
instantiate them. In this commit, we always first handle these,
then class defs for Scala lambdas, then other classes.
Add line in travis matrix to use -Xexperimental in test suite.
Pass command-line arguments to main method in run task.
Merge branch 'master' into scala-2.11
Blacklist a test that crashes Rhino.

It hits a limitation on the distance of jumps.
Remove obsolete patching in the runner for partest.