Refactor the way we run mobile JavaScript tests

This introduces a few changes:

* /tests/javascripts follows the directory structure of /javascripts.

* onResourceLoaderTestModules hook automatically checks if there is a
  test file for every JavaScript file we use in our ResourceLoader
  modules and if it finds it, creates a corresponding RL test module.
  No more dependency problems when adding new JavaScript test files!

* Messages and templates are loaded for tests just as they are loaded in
  the extension itself (hence the changes in test_mf-photo.js,
  test_carousel.js and test_mf-navigation.js)).

* Our JavaScript tests now have to be run using mobile version of
  Special:JavaScriptTest page, this also ensures they run in the
  environment they were written for.

* Sinon.js updated to 1.6.0.

There are a couple of hacks in place
* mobile.tests.base is prefixed with a 0. to force earlier loading. On
Jon's Mac Air this was loading after mobile.toggling module

* The settings tests set a cookie for 400ms. By the time the check was
run this cookie had expired so the limit was increased.

Dependency: I84e0512590de9ff2dbdf519d983a0c1c2d007194
Change-Id: I593a9c0e8edcb04a351a06a457327f63d698a298