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
Actually, now that remember it... in taskcluster-try I left the `taskgraph.yml` to specify the `scopes` and set `authorizedScopes` to the set I wanted to allow, see comment longer down...

And then I employed: https://www.npmjs.org/package/json-parameterization (which parameterizes after YAML/JSON parsing).
To ensure that tasks in taskgraph.yml could get unique taskIds and define relative `created` and `deadline`. In this case you would probably also need to parameterize in variables:
 * `treeherderProjectName`,
 * `treeherderResultSetId` (from `pull.head.sha`)


Remark, taskgraph.yml will probably only define a single decision task, so it might be necessary to allow the scope:
`scheduler:extend-task-graph:<taskGraphId>` so that the task-graph can define tasks that can extend the task-graph. Again offering the parameter `taskGraphId` to the template should be sufficient.

Note, source here I parameterize JSON loaded from a YAML file:
https://github.com/taskcluster/taskcluster-try/blob/master/try/instantiate.js
Example taskgraph.yml:
https://github.com/taskcluster/taskcluster-try/blob/master/test/data/task-graph.yml