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
This is really just a nit.  I prefer explicit returns, but also in this case we're purposely returning false if checkin-needed isn't there but a review has been done but we're not purposely returning false if no review was done and relying on an implicit return value. This would just make it consistent if no review was done at all.  You really don't even need another else either.  You could just return an `outcome` or something instead of nesting returns throughout the conditional.  I don't have a strong opinion on it, just was something I noticed.