Add @JSExportDescendentObjects to auto-export all descendent objects.

This annotation, placed on a class or trait, makes all the objects
extending it to be automatically exported, under their fully qualified
name.

This will be useful to export all objects of unit tests, for example.
Use @JSExport features for the testing framework.

This way the testing framework does not relying on the Scala.js
encoding anymore, and is therefore amenable to optimizations through
DCE and/or Closure.
Add -test suffix to module name in Test for (pre)optimizeJS.

It was done long ago for the three packageJS tasks, but not
yet for preoptimizeJS and optimizeJS.
Simple test of testing example under (pre)optimizeJS.

It works for the testing example because it is small. We
cannot do the same thing for the test suite because Rhino
crashes under the load. We'll have to fix this in a later
version of the sbt plugin, but at least this commit makes
sure we won't break inherent support for testing of
preoptimizeJS and optimizeJS.
Merge pull request #334 from sjrd/tests-with-optimize

Future-proofing tests with preoptimizeJS and optimizeJS