Add counters for response types, factor out some heka message checking in tests

This PR primarily addresses bug #172, adding some new counters to the search and geolocate APIs so we can see the relative ratio of wifi/cell/geoip/miss responses we're giving back. The code implementing that is the middle commit in the series, 0f67655d1aad9eef1c4b61d947cd43af3af89692 , separated out for the sake of review.

In passing (and thereby constituting the majority of _code_ in this PR) I noticed that there was a lot of test logic (in some cases either redundant or mis-commented) for checking heka messages in a relatively small set of patterns. So I factored out the assertions into a helper in `ichnaea.tests.base.HekaIsolation` along the way.

The helper is a little more "dynamic type magical" than I'm usually comfortable with -- two levels of type-directed sub-argument dispatch -- but it covers the main set of match scenarios we were doing with relatively clear logic and is, in any case, optional and only used in tests. Hopefully it's tolerable; it makes the testcases themselves much more legible and I think it'll improve the odds of adding heka-checks to tests.