Update to use new multi rexi_server protocol
Force abort when rexi_DOWN induces missing range

BugzID: 18735
Filter _local docs from the _changes feed

A bandaid to filter out _local docs that were introduced into the docids
btree due to bugs.
Ignore {ddoc_updated, _} couch_db_update events

There's a couch_db_update event handler defined in
fabric_db_update_listener. This event handler is only used for clustered
_changes feeds. I think it should be fine to only match against
{updated, DbName} events and drop all other events (including
ddoc_updated).

BugzID: 10979
Mockup rexi's server-per-node feature flag
Provide a non-interactive mode for maintenance

When adding or replacing nodes in a cluster we often don't want them to
be participating in read/write, view, or changes requests. This just
rejects all RPC calls that have an IO class of interactive.

BugzId: 18955
Fix latent bug in get_all_security

Accidentally calling maybe_finish_set instead of the appropriate
maybe_finish_get.

BugzId: 18955
Allow io_priority for design_docs/1

Previously there was no way to specify an io_priority during calls to
fabric:design_docs/1.

BugzId: 18955
Silence errors when getting security objects

Just drop the message and carry on as usual.

BugzId: 18955
Silence notifications on non-interactive nodes

Db update listeners on non-interactive nodes should not send updates
about their databases being updated. While theoretically harmless this
could end up causing some rather ugly behavior when we get update
notifications often but no changes are sent.

BugzId: 18955
Issue a timeout even if messages have arrived

When processing _changes feeds a timeout message simply generates a
newline in the response body.  We can afford to send a few extra of
those.  This patch allows us to send messages from the workers back to
the coordinator without interfering with the timeout calculation.

BugzID: 17709
Handle `no_pass` messages from filtered docs

BugzID: 17709
Send a `no_pass` message when a doc fails a filter

BugzID: 17709
Revert "Send a `no_pass` message when a doc fails a filter"

This reverts commit 1c47d1b7e1000eb665cbf4bb2a301baa1c3a4d51.  We'll
apply this commit once its parent is deployed.

BugzID: 17709
Set middleman timeout to fabric request timeout

The middleman_loop function in fabric_doc_attachments has a hard coded
ten second timeout. We think this is the cause of ten minute timeouts
seen by some customers. If the RPC workers happent to take more than ten
second to start requesting data (or if they all pause for more than ten
seconds) then the middleman loop dies which triggers the RPC worker
timeout as they wait for attachment data.

This updates the timeout to the fabric per-message timeout which is the
absolute maximum a middleman could go without seeing a message before
the coordinator would exit anyway.
Enhance maintenance_mode instead of creating a new mode

BugzID: 18955
Update to use new couch_event application
Use a private record for the callback state
Support new and old since values

BugzID: 18726
Send new since format and rewind better by using it

BugzID: 18726