Allow custom batching implementations.

I find myself wanting more control over how things get batched in angularFire.
This introduces a `batchingFactory` config option that allows substitution of the default implementation.
Going forward I see adding finer grained control by allowing different strategies for `$save`,`$update`, etc.

A common use would be blocking/canceling pending updates from the server if there is a local change pending.