Use proper repo/state querying for Github v3 API

This fixes #97. Since switching to the `search_issues` method instead of the `legacy_search_issues` method, the return value is different. The non-legacy search API includes metadata keys in the response, and nests the actual search results under an `items` key, so we need to call `items.first` instead of just `first`.

Also, the repo/state options were being completely ignored, which could potentially cause 2 problems:

1. The fingerprint might be matched in someone else's repo and updated there instead (infinitely small chance, but still a chance)
2. Closed/open issues would be returned in the same result set, potentially causing a closed issue to be updated when there was an open one that should have been updated.

The `search_issues` method expects any qualifiers (e.g. repo and state) to be part of the actual query string.

Updated the tests to account for what `search_issues` actually returns.

(I couldn't get the full test suite to run, even before any of my changes -- it was locking up on the generator test -- but all of the exception_handler tests pass).