(daleharvey/pouchdb#1198) - Allow 0/null as mapreduce keys

CouchDB allows 0 and null as separate keys in
mapreduce queries. This commit makes PouchDB behave like CouchDB.
Since this is a multi-repo change that affects pouchdb,
pouchdb-collate, and pouchdb-mapreduce, I wasn't really sure
how to structure this commit, so I'm just including the same
commit message in 3 separate commits.
(daleharvey/pouchdb#1198) - corectly specify dependencies
(#9) - test both local and remote
(daleharvey/pouchdb#1199) - query() supports keys

The query() function now supports keys as an input param.
Keys are hashed in advance, to ensure that the complexity
is O(n) rather than O(n * m), where n is numDocs and m
is numKeys.

Sisnce there are a lot of edge cases for null/undefined/etc.,
I'm also adding unit tests to daleharvey/pouchdb, which
confirm that the functionality is exactly like CouchDB's.
(#13) - misc cleanup
(#16) Add jshintrc

Copy the .jshintrc over from PouchDB, make some minor changes
to fit Mocha, fix syntax.  Add jshint to the test.
(#14) fix ordering in case of multiple emits

When the same doc emits the same key with different values,
CouchDB sorts by [key, docid, value].  Now we do the same.
(#20) - exclude documents that start with underscores
(#22) - 100% coverage
(#19) - don't eval built in reduce functions
(#26) - add promises
0.4.0
(#15) - handle NaN/Inf/dates

Ensures that PouchDB mimics CouchDB's
behavior for mapreduce keys containing
NaN, Infinity, -Infinity, and dates.
0.5.0
(#5) - fix _conflict assertion in tests
(#32) - Fix misleading comment in test.js
(#30) - rewrite tests to (almost) exclusivly use promises
(#35) - add complex keys failing test
(#35) - fix complex keys maps
(#37 / daleharvey/pouchdb#1264) closures in temp views