Added method to add multiple locations to GeoFire at once

@jdimond - Writing to GeoFire is making our transit Open Data Set practically unusable. We end up writing to the Firebase hundreds of times a second because we can only add one location to GeoFire at a time. This PR adds a new `batchSet()` method which allows you to add as many locations to GeoFire in only one write. I made it backwards compatible with the previous GeoFire version and data structure.

This should significantly improve the performance of our Open Data Set and make it usable once again. Let's sync up on this tomorrow and talk about porting this to the other clients.

cc/ @tonymeng @vikrum 
This will always evaluate to true, since {} always is a new object instance. Either use Object.keys(newData).length === 0, or leave this check out all together. Firebase doesn't do a server roundtrip for empty updates...