Added public CBLReplication initializers

This allows a client to create multiple replications between the same source and target.
This can be useful if they have different filters.
Also edited doc-comments on existing replication creation methods to clarify behavior.
Added public API for local documents

This differs a bit from the CouchDB API in that
* You don't have to give the "_local/" prefix, since it's already implicit;
* No MVCC: You don't have to specify the revision ID you're replacing.
  Since the database is local to your app, and these docs aren't replicated,
  it seems like overkill to insist on this.
Fixes #6.
Restart persistent replication after change of filter etc.

If you change the .filter, .query_params, .continuous or .doc_ids property of a
persistent replication, CBLReplication will ensure that the replicator manager
restarts the replication immediately (with the new settings.)

This may be worth doing for non-persistent replications too; but this commit
doesn't cover that.
Added some more __attribute__((nonnull)) to public headers.
Fix: Pull checkpoints weren't getting restored correctly

TDPuller was saving its checkpoints to the remote JSON doc as numbers but
they were then read back and cast to string, causing the comparison to
fail. This meant the puller would start over from the beginning every time.

I also added some more logging.

Conflicts:
	Source/CBL_Pusher.m
	Source/CBL_Replicator.m
Fix: "?" in doc ID wasn't being escaped

TDEscapeID wasn't escaping "?". This led to the replicator constructing
invalid URLs for docs whose ID contains "?", which meant they'd never get
replicated.
Fix: Puller would lose checkpoint if first doc couldn't be pulled

If the first new revision received by the puller fails to be read or
written, the last-sequence ID won't advance. But the puller was instead
getting a null sequence ID instead of the checkpointed one, and trying
to save that, which deleted the checkpoint. So the next pull would start
over from the beginning.

Conflicts:
	Source/CBL_Puller.m
Generate an "Extras" folder in the iOS build output

Extra optional source files go in it -- currently CBLUICollectionSource.
This will then be copied into the archives the buildbot generates.
Bump version to 1.405 (aka 1.5d5)
Turned off build flag GCC_INCREASE_PRECOMPILED_HEADER_SHARING

I'm getting build failures in Jenkins between the regular and stable builds of CBL
that look like misused precompiled headers, so turning this off may fix them.
REST: Added continuous feed version of _active_tasks

This lets REST clients get continuously-pushed replication activity updates.

If you add "?feed=continuous" to an /_active_tasks request:
* The response uses HTTP chunked mode.
* Each task object is sent as a separate top-level JSON object followed by a newline.
* The connection stays open forever, and subsequent activity changes are written immediately.

Fixes #27
Better logging if change tracker fails HTTP auth

If TDSocketChangeTracker gets a 401 or 407 and can't find a credential, or the credential is rejected,
it now logs a message of the form
    TDSocketChangeTracker[...]: HTTP auth failed; sent Authorization: %@  ;  got WWW-Authenticate: %@
showing the Authorization header it sent (if any, else null) and the WWW-Authenticate response header.
These headers are also returned in the NSError as keys "HTTPAuthorization" and "HTTPAuthenticateHeader"
(although this is of limited use since this info won't make it all the way up to the public replication API, yet.)
This should help in diagnosing issue #242.

Conflicts:
	Source/ChangeTracker/CBLSocketChangeTracker.m
	Source/TDStatus.h
	Source/TDStatus.m
Added CBLJSViewCompiler to the 'Extras' folder.
Hide passwords embedded in logged URLs

Passwords in URLs are replaced with "*****" when logged.
I don't think I've fixed all the places where URLs get logged yet.
File bugs if there are others.
Make returned error strings more compatible with CouchDB's

These strings are in JSON "error" properties in error responses and in individual items
of a _bulk_docs response.

Conflicts:
	Source/CBL_Router+Handlers.m
	Source/TDStatus.m
Make TDPusher more careful abut bumping the checkpoint

It now works similarly to the puller, using an NSIndexSet to keep track of which sequences haven't
yet been uploaded, and only advancing the checkpoint to just before the first sequence in the set.
This will fix possible edge cases/race conditions where the checkpoint may have been advanced too
optimistically, causing a doc that failed to be pushed once to never be retried. (Fixes #246)

Conflicts:
	Source/CBL_Pusher.m
CBLJSON should use milliseconds in ISO-8601 dates

CBLJSON was using an ISO-8601 date format string without milliseconds in it.
But ECMAScript specifies that date strings should have milliseconds.
I extended the code to (a) generate strings with millis, and (b) parse strings with or without them.
Added a test case, too.
Fixes #33.
Fixed broken links in README.

Fixes #35.
Added extra sanity checks around transactions.

Trying to figure out #34.
Use correct _session API URL for Sync Gateway

Now tries both /_session and /db/_session. Fixes #41.