Attempt to make frontend-to-addon comms more robust
Attempt to make frontend-to-addon comms more robust

- Perform initial experiments API fetch and add-on installed experiment
  message happen in series, rather than in parallel

- `app.waitForMessage` will now retry several times before finally
  timing out with a rejection (default 3 times)

- If all else fails on app init, bounce to error page instead of blank
  white page

Fixes #1101

ckprice/testpilot,clouserw/testpilot,meandavejustice/testpilot,mathjazz/testpilot,lmorchard/idea-town-server,mozilla/idea-town-server,mozilla/testpilot,clouserw/testpilot,lmorchard/idea-town-server,ckprice/testpilot,6a68/idea-town,flodolo/testpilot,mozilla/idea-town,6a68/testpilot,mathjazz/testpilot,6a68/testpilot,meandavejustice/testpilot,chuckharmston/testpilot,lmorchard/testpilot,dannycoates/testpilot,mozilla/idea-town-server,mozilla/testpilot,dannycoates/testpilot,mathjazz/testpilot,lmorchard/testpilot,flodolo/testpilot,chuckharmston/testpilot,clouserw/testpilot,lmorchard/idea-town-server,ckprice/testpilot,flodolo/testpilot,lmorchard/idea-town,6a68/idea-town,lmorchard/idea-town,lmorchard/idea-town-server,6a68/idea-town,mathjazz/testpilot,meandavejustice/testpilot,fzzzy/testpilot,dannycoates/testpilot,mozilla/idea-town,mozilla/idea-town,6a68/testpilot,mozilla/testpilot,lmorchard/idea-town,mozilla/idea-town-server,lmorchard/testpilot,mozilla/idea-town,mozilla/testpilot,mozilla/idea-town-server,meandavejustice/testpilot,chuckharmston/testpilot,chuckharmston/testpilot,clouserw/testpilot,fzzzy/testpilot,dannycoates/testpilot,lmorchard/idea-town,fzzzy/testpilot,fzzzy/testpilot,6a68/idea-town,ckprice/testpilot,lmorchard/testpilot,6a68/testpilot,flodolo/testpilot