Add preliminary version of view changes
Add view filtering optimization to changes feeds
Add rev to view changes respose. See couch_mrview for corresponding changes
Open view in changes start function rather than outside
Make include_docs=true work for view changes
Refactor code for sanity and so the view changes handler can reuse code better
Add comment and do minor refactoring
Change return format of _view_changes

This commit makes KV pairs for _view_changes requests be returned in the
format:

    {..."add": [["key", "val"],["key2", "val2"]], "remove": ["oldkey"]}

Note that the "add" field is a list of lists rather than an object
because: 1) there can be multiple values for a given key and 2) keys can
be non-strings (non-string keys are invalid JSON).

Also note that if a view update causes adds or removes some (but not
all) values for a given key, all values associated with that key will be
returned in the _view_changes response.