Improvements on #87

This PR is the continued work on #85 after #87 is merged, and obsoletes #95 .

Code clean up:

* extracted a function to post status for non-mergeable PR for reusing
* avoid infinite loop by: only post status when the state is external, i.e. not originated by the tooling server itself

Experience change:

The "Detail" link in #87 is confusing, because it presents texts encouraging a PR from upstream to the feature fork, but since it's not mergeable, creating a reversal PR doesn't make sense. I wish people to focus on the commits behind upstream, so I added the anchor to jump to the commit log in the comparison, skip the creating PR part to avoid confusion.

It no longer handles the state change event compared to #95, because it turns out that travis won't start for a non-mergeable PR, so no override of status would happen at all.