(#920) - Support for custom builds with adapters/plugins

Add support for comma/space separated list of adapters or plugins
as cli parametrs.

Eg:

To build only idb adapter, use

    grunt --plugins=mapreduce

or to build only idb and http adapter, use

    grunt --adapters='idb http'

Signed-off-by: Rohan Jain <crodjer@gmail.com>

(#920) - Build name based on included modules

Build name is generate based on the modules which are included
via command line parameters.
(#925) - Make sure the change applies to the value we're watching

If application used `chrome.storage` for other means, this listener
would receive all changes and fail due to `db_name` not being present in
the object representing the change.
(#928) - Remove non working submit tests, add notification of tests complete
(#926) - HTTP Basic Auth for Userinfo in the url.

Before, HTTP Basic Authorization header was set only when user/password
were passed in the opts object for the instantiation of PouchDB, now
http://user:password@host works also.
(#789) - Count pending revisions in a correct way

When multiple conflicting revisions for some id were present on a remote
database, `pending` variable was incremented only by one to account for
the document itself, but it was then decremented for every conflicting
change. This effected in negative `pending` value, which in turn meant
that `completed` callback was never called (due to `pending === 0` being
false).

This change modifies semantic of `pending` variable to count revisions
to process instead of documents. Calculation of `docs_read` was changed
as well, because it should include all fetched documents, including
conflicting revisions - until now it was counting something else than
`docs_written`, so a situation when `docs_written !== docs_read` was
possible (which should not happen, in general, `docs_read ===
docs_written + docs_write_failures`).
(#939, #935) Change way of calculating revsDiff

Until now, `revsDiff` was using `rev_info` option to `get` routine as a
source of information for which revisions are present and which are
missing. This led to problems, as purpose of `rev_info` is to list
revision history of current winning revision, so it doesn't include any
information about conflicts or deleted revisions.

CouchDB itself is using internal index information for obtaining state
of revisions for a given document (see
https://github.com/apache/couchdb/blob/master/src/couchdb/couch_db.erl#L193),
so it seems valid to do the same in PouchDB, by traversing the whole
revision tree obtained by using custom (internal) API. HTTP adapter
overrides `revsDiff` to use a POST request, so it works fine.
(#946) - Add HTTP options in getHost so they work during delete
(#946) - Added options argument to the destroy function.
(#948) - Replaced Function.prototype.bind with short functions. Abstracted blob creation into a function.
(#948) - Remove duplicate blob.js followup
(#909) - Enabled paging for replication of doc_id's

Currently the finished value is incorrectly set to true when there are
no results in the first 25 records
(CHANGES_LIMIT = 25) when filtering by a list of doc_ids. This stops
the loop and prevents the doc_id's from being replicated.
Created the new pagingCount field and set it to the remoteLastSeq
value. PagingCount is decremented by
CHANGES_LIMIT every time the fetched callback runs. The logic for
finished has been modified so that even if
resultsLength ===0, finished will be false if pagingCount > 0. This may
also work for other types of filtered replication.
 (#963) - latest changes since info.update_seq

`changes({ since: 'latest' })` should listen for changes since `info.update_seq`
instead of `info.update_seq - 1`.
(#938) - Pass options to HTTP library
(#961) - api.changes: return promise

Return promise with a `cancel` method when calling the changes api
* while it uses the `taskqueue`
* with `{ since: 'latest' }`
(#961) - Follow up: fix jshint errors
(#956) - Server Replication

Introduce `options.server` which allows to initiate server replications
via `PouchDB.replicate`.
(#915) - Check Database exists before deleting in node.
(#979) - Destroy local db whith open changes

Check for the existence of database listener hash before
deleting the listener.
With test.
(#981) - Disable CORS tests
(#986) - Faster Cancelling of Continuous Replications