Bug 837139 - Performance test framework built on top of the integration tests r=vingtetun

- Infrastructure for performance tests
- we use the manifestURL instead of the name for l10n reason
- New Mocha reporter for perf tests
- Startup tests for sms, dialer, contacts and gallery
  (will be improved by bug 838527)
- Custom rendering time tests for the contacts app
  (will be continued in bug 837673)

Also, it makes the integration tests work again :)

Work done by @etiennesegonzac, @julienw and @Rik
(cherry picked from commit d7fad119beddf112208bb8fcfb7654d0a5cec347)

Conflicts:
	apps/communications/contacts/js/contacts_list.js
	tests/atoms/gaia_apps.js
Bug 837139 - Performance tests framework built on top of the integration tests a=tests

fix unit tests
(cherry picked from commit 66659e24e442a55c46c90cbdddd409069df761a8)

Conflicts:
	apps/communications/contacts/test/unit/contacts_list_test.js
Bug 838527 - Generic app startup perf measurement
(cherry picked from commit e184b751c191fd132326e7afdd3b379834d92f02)
Bug 840137 - Refine the perf measurement output to be consumable by automation

Filters log/error messages by default, use VERBOSE=1 to reenable them.
The application being tested is available in the stats.application property.
(cherry picked from commit 7b14dfbcf9875a63641b963fa210bad9314d5c74)
Bug 842616 - Running make test-perf sometimes report measures multiple times
(cherry picked from commit 889a20d22a972932298c62b7aab4932dd577e245)
Bug 837673 - [contacts] "ready to use" perf measurement r=jlal

- rename ContactsRenderingPerformance to PerformanceHelperAtom
- store all received events in the PerformanceHelperAtom, in a local variable
  instead of a global variable.
- Start refactoring performance helper to make it a instanciable object. In the
  future, it will probably handle the loops too.
- don't send perf events if we don't listen
(cherry picked from commit dac9b2a8a36305844651aba96a3a1904e74e648d)

Conflicts:
	apps/communications/contacts/index.html
	apps/communications/contacts/js/contacts_list.js
	apps/communications/contacts/test/performance/rendering_test.js
Bug 847395 - Blacklist new communication imports subdirectories
(cherry picked from commit 3335a36c863f8f1e45e4f289ee664fc5f4593a25)
Merge pull request #8530 from lightsofapollo/perf-blocks

Bug 846302 - Use generator "tasks" instead of for loops and delay(cherry picked from commit 4582a3d40740981b1c642550a6482c5568df24d5)
Bug 836365 - fix uplift bustage
Revert "Bug 836365 - fix uplift bustage"

This reverts commit 93c90992792f1231c8f15447b260e29419de6ee9.
Bug 836365 - fix uplift bustage
Merge pull request #8368 from lightsofapollo/calendar-new-loader

Bug 846079 - New Calendar Loader / Settings Fixes r=kgrandon(cherry picked from commit bcea26f1c5f816cc38f267200e2e8082a03e5117)

Conflicts:

	apps/calendar/js/controllers/alarm.js
	apps/calendar/test/unit/controllers/alarm_test.js
	apps/calendar/test/unit/dependency_loader_test.js
	apps/calendar/test/unit/views/week_test.js
Merge pull request #8446 from lightsofapollo/calendar-async-accounts-and-calendar-stores

Bug 816610 - Calendar async accounts and calendar stores...(cherry picked from commit cbc741d01d43b781178d3a2a4e7df43d9fed6da6)
Merge pull request #8030 from rwldrn/839574

Bug 839574 - gaia HEAD stuck at "Based on Mozilla Technology" screen(cherry picked from commit 6d5a4949a1357296750cb15bf7f3374c78607004)

Conflicts:
	build/webapp-optimize.js
Bug 840160 - Selecting to enter edit mode on an app that is downloading will disable the ability to launch any app until the phone is restarted or upon entering edit mode on a non-downloading app r=crdlc

* optimize png sizes
* add basic tests for grid
* always enable panning when the user presses the home button
* don t spin the icon while drag&dropping
* always create a renderedIcon, even in the downloading state
* add the img as late as possible to the DOM
* change GridManager from const to var to be able to mock and test it
(cherry picked from commit 871aba5cbdb50dc48b352dbb0be5474f44e4a09c)

Conflicts:
	apps/homescreen/js/grid.js
	apps/homescreen/js/page.js
Merge pull request #8145 from davidflanagan/bug803809

Bug 803809 - pan homescreen based on predicted future motion r=crdlc,cjones,vingtetun(cherry picked from commit 9202b3c1567bd99898ed7a136348637d8a630e63)

Conflicts:
	apps/homescreen/js/grid.js
	build/applications-data.js
Bug 831396: Restrict the wired headset events detected. r=etienne a=blocking-b2g
(cherry picked from commit b39f61ecf6e32400f3fa2e1b4c6011f1fa42ea51)
Bug 848858 - Add UA override for deadline.com r=fabrice
(cherry picked from commit e828341090de74bc95c9d791f7db1e0e32ce3f88)
Bug 849441 - [B2g] [Webapps] The wrapper ends slowly causing the user to see the background
Merge pull request #8676 from crdlc/v1-train

Bug 849441 - [B2g] [Webapps] The wrapper ends slowly causing the user to...