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 passes when the test suite is run via the browser but when I run it via `gulp test` on the command line, I get the following output:

```
PhantomJS 1.9.7 (Mac OS X) geoFireUtils Tests: Bounding box bits: boundingBoxBits must return correct number of bits FAILED
	Expected -79 to be 3.
	Error: Expected -79 to be 3.
	    at /Users/jacob/Dev/geofire/tests/specs/geoFireUtils.spec.js:232
	Expected -81 to be 3.
	Error: Expected -81 to be 3.
	    at /Users/jacob/Dev/geofire/tests/specs/geoFireUtils.spec.js:233
```

We use Travis to run the command line tests every time we check in new code, so we should get that working.