(#3056) - implement doc_ids filter

The implementation of https://github.com/pouchdb/pouchdb/pull/3056 was not quite right; here is my version.

* passes `filter=_doc_ids` to CouchDB, which is what actually triggers the filtering when combined with `doc_ids` (verified in the Network debugger)
* uses POST with `_changes` when there are a lot of doc_ids, verified in the debugger that we have a test case that POSTs as well as a test case that GETs
* removed `doc_ids` filtering from `utils`, made it the responsibility of each adapter, since `idb.js` and `websql.js` already do the filtering themselves anyway for performance reasons (and it also verifies that `http.js` is being queried correctly)
* fixed `doc_ids` for live changes; it actually wasn't working
* added a bunch of tests
^ besides removing any doc_ids handling here, I also refactored it a bit. there was some logic that didn't need to be within the sub-function