Add logic to filter PRs based on the last commit status

This PR adds some logic to filter PRs by status namely
- `scc merge <branch> --check-commit-status` excludes PRs which status attached to the last commit is not strictly `success`
- a corresponding integration test `testStatus` is added to `TestMerge` where a PR is opene, its status is modified (none, pending, failure and success) and the outcome of `scc merge --check-commit-status` is checked for each status

As part of these changes, the following changes have been brought:
- the `PullRequest` object in `scc.py` has been refactored and minimally acts as a wrapper of the github.PullRequest object. New methods have been added to retrieve the corresponding issue, last commit and last status. The construction changes have been applied to the rest of the code
- the `TestMerge` integration tests have been rewritte: a new PR is created for each test and the outcome of the `scc merge` command is systematically checked for each test
- the tests have been split under `test/unit` and `test/integration`. At the moment only unit tests are run by the Travis build (dropping all the Github part) and the entire test suite is expected to be run under hudson. 

/cc @mtbc, @joshmoore

Immediate build candidates for applying these changes once merged are the documentation builds where the Travis output is very reliable.