Refactor the scc PullRequest object

- Modify the PullRequest() constructor to build from github.PullRequest
- Modify the PullRequest() object creation across the code
- Add get_issue() method to retrieve the issue associated to the PR
- Add get_last_commit() method to retrieve the head commit using the sha1
- Add get_last_status() method to retrieve the last status of the last comment
Handle case where no status is attached to the last commit
Add delegate method to PullRequest object
Merge remote-tracking branch 'origin/master' into pr_status
Add option to filter PRs by status in the merge command

This commit defines a new flag argument --check-commit-status for all commands
derived from the FilteredPullRequestCommand abstract class. The
find_candidates() method is updated to add an extra filtering step if this
flag is passed.
This commit provides the default framework to close #41. Extra granularity on
the status filters can be implemented when necessary.
Fix filtered pull requests unit tests to account for new status filter
Fix flake8 warnings
Pass test case name to the description of the PR in Sandbox.open_pr
Review scc merge integration tests

- Create new branch/PR for each test
- Add isMerged() method to TestMerged
- Combine remote tests
Reorganise scc tests into unit/integration tests
Fix header dates
Fix status checking logic and add integration test for status filter
Fix date headers
Remove semicolon
Log status-excluded PRs in find_candidates()

Also add the returned log to the info log generated by the `scc merge` and
`scc set-commit-status` commands
Retrieve commit from the head repo instead of the base repo

This commit should allow the testStatus to pass for any user. Since
the commit is retrieved from the head repo, the authenticated user should
have permissions to set the status on the commit.
Merge pull request #101 from sbesson/pr_status

Add logic to filter PRs based on the last commit status