Bug 1087630 - [Autolander] use integration branch, add tests

This is not perfect and we can make it better, but some feedback would be good if you guys have any. Here is a few things at a high-level of what's done here:

* Taskgraphs - Schedules tasksgraphs if the project contains a taskgraph.json. Will wait until a "finished" state to land. If there is no taskgraph.json, lands when the bug has checkin-needed and a review. 
* Integration Branch - Commits are applied to the integration branch. In the case of a taskgraph failure the integration branch is re-built and commits are re-played on top of it.
* Integration Tests - End-to-end integration tests have been implemented. Each test currently destroys and re-creates a test repo on github. Run tests using ```npm test```.

https://bugzilla.mozilla.org/show_bug.cgi?id=1087630
Bad style... We can't do this long term... "*" can do a lot of things on taskcluster. Imagine someone adding a task in the `taskgraph.json` that abuses this...

You need:
  * `queue:route:treeherder:<TREEHERDER_ROUTE>.<PROJECT_NAME>.<pull.head.sha>`
  * `queue:define-task:aws-provisioner/gaia`
  * `queue:define-task:aws-provisioner/<workerType1>`
  * `queue:define-task:aws-provisioner/<workerType...>`
  * `queue:define-task:aws-provisioner/<workerTypeN>`
Where `workerType1` to `workerTypeN` are workerTypes that tasks in the taskgraph.json should be allowed to use.
For now you probably only want to allow tasks to use the `gaia` workerType. I suggest you make this configurable as allowedWorkerTypes: ['<privisionerId>/<workerType>']. Supposedly, you'll want to support other provisionerIds in the future too... Phones might get their own specialized provisioner.

If you create or want to allow creation of secret artifacts, than both tasks and task-graph must have scopes for this.
I think we can give you a prefix scope for this...