Allow multiple listeners for identical paths

The current version of ReactFire doesn't cope well with listening to the same path in multiple components. This is because the listener reference from `ref.on('value')` is never stored, and thus all listeners are removed when `ref.off('value')` is called without a listener parameter.

This patch stores each `ref.on('value')` listener and passes it to `ref.off('value', listener)`.