[issue871] Fix Google Code Bug Importer

Continuation of #50. @paulproteus and I are pairing on a CR and we will merge this tonight.
@paulproteus sez: "You're using mock in a different way than we generally do in this codebase, and to keep mental overhead of mocks as simple as possible, I'd encourage being more consistent. Here are some tips for that:

* Don't use the mock context manager, aka `with`. We don't use that generally, partly because it causes the lines to get very wide, partly just to minimize the different ways we use the mock module.

* Given that, we recommend using `mock.patch` in the function definition wherever possible, even if that means a huge pile of @mock.patch(..., ...) at the top of a function definition.

* Where possible, prefer the two-argument @mock.patch() form. This way, you define the function with a reasonable name outside the function you're patching, which means the specific test function is a little simpler. (This way, you get to minimize use of `.return_value` and "just" write normal functions that return things.)

* When creating stub objects, like the mock.Mock() calls that @ehashman mentioned earlier and was confused about, perhaps you can create a class like:

    class FakeThingAmabob(mock.Mock):
        some_attr = some_value
        some_other_attr = some_other_value

* (Then you can use that class by name, which usually makes the test case easier to read.)

* When mocking out modules like `scrapy.http`, mock them out globally, not `bugimporters.google.scrapy.http`. It's easier to read if you mock it out globally, like `@mock.patch('scrapy.http')`. The more explicit you can make your `mock.patch` calls, the easier I think it is to read."