Re-index multiple views together

When updating a view's index, also update other views' indexes. This
saves time because a lot of the work (iterating through the sequences,
fetching the documents, looking for conflicts) is shared.

Like CouchDB, I'm grouping views together for this purpose. The other
views that will get updated are the ones sharing the same prefix up
through the first "/". Or if the view name has no "/", it's all the
other views without a "/".
Optimization for naughty map functions that emit 'doc' as value

Instead of storing the whole doc dictionary, store a placeholder ("*").
At query time, detect the placeholder and load the revision body.
A few more view-indexing optimizations
Changed indexing behavior so views with no “/“ in name don’t index together.

There’s a compile-time flag GROUP_VIEWS_BY_DEFAULT that can be defined
to change this back to having all those views form one group.
fix conform path for #import
Fixed equality test for query rows whose value is 'doc'

Regression from the emit-doc optimization (03454e8)
Merge pull request #389 from ManuTroquet/master

fix conform path for #import
Added a unit test for emitting nil values. Fixed some Xcode 6 compile issues.
Workaround to keep CBLJSONReader from being dealloced prematurely

I think this will fix #369.
Avoid unnecessary JSON data-to-string conversions during view indexing
Fixed mistake in JSON string collation Unicode ordering

Character comparison was using ASCII order instead of the real Unicode
collation order. (For example, '_' and '~' were sorting after letters
instead of before.)

This commit also bumps the db version number; the next time a database
is opened its view indexes will be cleared, so they'll be re-indexed
with the new ordering instead of getting an inconsistent mixture of the
old and new orderings.
Fixed FMDB submodule commit reference.
Fixed a case where a view query could use -1 instead of the view_id in the SQL query

https://groups.google.com/d/msgid/mobile-couchbase/aa81a906-188f-445f-b67c-3898503e3683%40googlegroups.com
Fixed bugs saving replication checkpoint

* Updating the checkpoint should not be canceled when the replication goes offline or is told to stop.
* The lastSequence stored in the db at the end should be the lastSequence saved remotely, _not_ the current lastSequence (which may have changed.)
* Added a Sync log message when the checkpoint is successfully saved, for future debugging.
Router should not try to parse URL params as JSON for changes feed

From the CouchDB docs it seems pretty clear that the extra URL query params in
_changes feed requests are passed directly as strings to the filter function, without
any JSON parsing.
(See http://docs.couchdb.org/en/latest/couchapp/ddocs.html#filterfun )
Fixes #321
Change CBL_Replicator progress notification postingStyle to NSPostASAP

This will deliver progress information more quickly.
Fixes #396
Made CBLWebSocketChangeTracker work correctly with CBLAuthorizer

Also found that it didn't work correctly if usePOST property wasn't set,
so I fixed that too.
Fixes #400
Skip FMDB thread-safety check when running on dispatch queues.

Fixes #376
Better handling of a model's document being deleted

* Clear all properties
* Clear needsSave flag, remove from db's docs-to-be-saved set
* Detach from document even if the model didn't initiate the save
* Don't call didLoadFromDocument
Fixes #363
Enable JS filter compiler support

The function CBLRegisterJSViewCompiler() now also registers the JS
filter compiler.
Also, enabled JS filters in LiteServ.