improved algorithm to determine geohash queries

The new algorithm works as follows:
1. Determine the 8 coordinates with distance of radius from each other that form a bounding box around the desired query circle.
2. Determine how many bits are necessary to receive a geohash with corresponds to a bounding box length of at least radius
3. Calculate the 9 geohash queries for the 8 coordinates and center coordinate using the number of bits calculated in the previous step by flipping the appropriate bit and removing any remainder.
4. Remove any duplicates
In any case the up to 9 queries should contain any geohash that lies within the given circle. I've written tests to ensure the helper functions and the resulting queries work correctly.

The method fails for queries close to the poles. However geohashing fails here in any case (also with the old algorithm), as any coordinate near the pole can be in any range.
This test times out when run via `gulp test` on the command line and also on Travis. The reason is that it takes over 10 seconds to run. To account for this, we need to add `browserNoActivityTimeout: 30000` to the `/tests/karma.conf.js` file to tell PhantomJS to not timeout after the default 10 seconds.