(#2484) - fix readOnly replication for CORS/40*

Currently we only mark a source database as
read-only if it returns a 401. Really we should
do it for any 40*, and also in the case of CORS
the error status is a deceptive 0, so this doesn't
help.

Ugly hack, but I verified manually that using a
CouchDB that only accepts CORS methods GET and HEAD,
I can now replicate in Safari 7, IE 11, Chrome 36, and Firefox 30.
(#2428) - fix args for remove()

It turned out there were a lot of argument
combinations that we weren't checking in the
tests, which is probably why this one slipped
through.

In addition, I added a fix to make it so you can
specify the rev in the options, and it'll use that
if the _rev isn't defined in the document. This is
not something I want to advertise in the docs (since
the usage is complicated enough as it is), but I think
it may help folks who are used to the CouchDB style
where we think of the Pouch options as being equivalent
to the Couch HTTP params.
(#2337) - fix replication event listener memory leak
(#2447) - link pouchdb-server's pouchdb to us in travis

Travis seems to be an unusual environment where the
immediate dependents of a module that depend on that module
are not automatically symlinked to it.  So this fix is to
only do it in Travis.

This is required to unblock #2442.
(#2442) - Allows replication fields in docs
(#2460) - websql: update_seq should be an INTEGER

This fixes errors with the update_seq on
Android 2.x using the SQLite plugin, because we
need to know the type of the column in order to
bind it properly.
(#2492) - fast fail in travis

This will ensure that our "allowed failures" don't run
if any of the non-"allowed failures" fails.

So e.g. if PhantomJS fails, we won't bother running
the Safari/iPhone builds.
(#2490) - fixed http proxy
(#2445) - Got rid of undefined in error message.
(#2477) - use a Map and Set instead of an object when we have user supplied values
(#2477) - fix reserved ids in revsDiff
(#445) - Implement Incremental MD5 calculation

Replace jkmyers-md5 with Spark-MD5 in order to calculate MD5 hashes
incrementally. The use-case for this change is to avoid blocking the UI
thread when adding large attachments.
(#2500) - Remove shorter timeout and enable saucelabs
(#2468) - Document PouchDB Collate as external resource
(#2473) - Make changes batch size configurable
(#2457) - don't set error.message
(#1932) - Implementing blog pagination
(#2403) - fix up sync/replication docs