Architecture change and new methods

* Switches to a promise based system where possible
* Adds eachPullRequest() to handle iterating
* Adds canMergePullRequest()
* Adds mergePullRequest()
* Introduces a StashPullRequest object