Incrementally update view indexes

updateView() now only runs the map function on docs that have changed
since the last time it was called, just like real CouchDB and Couchbase
Lite. Not surprisingly, this makes view updates much faster.
(Most of the changes in this commit are simply to make ViewResult have
an array of *ViewRow instead of ViewRow, since we're copying a lot of
array entries when a view updates.)