Move maintainers code into new file

Refactor and cleanup some funcs
Rewrite get maintainers logic
'pulls checkout' is safe and re-entrant

* Can be safely called from any current branch
* Can be safely called several times in a row
* Re-pushes are always taken into account
* No risk of merging into an old local master
* Doesn't impose a branch naming scheme: you get an anonymous branch and
decide what to do with it.
Merge pull request #100 from shykes/pulls-checkout-reentrant

'pulls checkout' is safe and re-entrant
Merge pull request #102 from crosbymichael/reviewers-fix

Rewrite the maintainers and reviewers logic
Comment on a PR with `pulls comment`
Merge pull request #103 from shykes/pulls-comment

Comment on a PR with `pulls comment`
Use fmt.Printf() instead of fmt.Fprintf(os.Stdout, ...)
Code style: unify the use of WriteError
Rename WriteError to Fatalf for clarity
Merge pull request #106 from shykes/style
Add more information to pull request view

This adds if the PR is mergeable.  If it was merged it adds who merged
it, what time, and the merge commit.

[solomon@docker.com: rebased and resolved merge conflicts]
Signed-off-by: Solomon Hykes <solomon@docker.com>
add --assigned & --unassigned

[solomon@docker.com: rebased on master]
Signed-off-by: Solomon Hykes <solomon@docker.com>