(#4)  Add filter function option

Add an option to filter out documents from the search index.  
This is for issue #4.
Two issues here:

* try/catch should always be inside its own function, otherwise it deoptimizes the whole function. [Details here](https://github.com/petkaantonov/bluebird/wiki/Optimization-killers), and [here's an example](https://github.com/pouchdb/mapreduce/blob/0c3bda8ded82a337cdd47a6dda70af848f85e5d0/index.js#L29-L40) of how we solved that issue in map/reduce.
* I agree that we should do a try/catch in case the user has a broken filter function, but silently failing is not ideal.  You should emit an error on that `db` object so it will at least log to the console in big red letters.  Again, see that map/reduce link for an example of how to do this.