Implementing the `fields` config option using underscore's pick()

Special care is taken to ensure no crash occurs if the path referenced is a non-object. If you don't feel awesome about bringing underscore in as a dependency, I can shoot you another version of this commit with underscore's pick() ~~and size()~~ implementations copy-pasted (underscore is also MIT-licensed).

Also, as you know, Firebase doesn't quite allow for picking of fields within a path. So, I also updated  config.js to reflect that fact. ~~Note that, with this implementation, if a non-index field is changed in a given object, the object will not be re-indexed (which probably is a safe performance optimization).~~