MB-7701: latency optimized XDCR

In this commit, we optimistically send all docs to remote cluster
without sending a rev_diff beforehand. This optimization is meant
to improve the replication latency at the cost of potentially more
bandwidth usage in some use cases.

The feature is controlled by a new boolean ns_config parameter:

xdcr_optimistic_replication

Like other xdcr parameters, users are able to override the ns_config
parameter by a boolean environment parameter:

XDCR_OPTIMISTIC_REPLICATION

When a replication is created, this parameter will be read and stored
in the bucket replicator along with other replication options, and
applied to all vb replicators under that bucket replicator. Therefore
users need to stop/restart the replication to make it effective. It
does not make sense to apply this parameter to only a subse of vb
replicators during an ongoing XDCR.

Regarding exposing the feature to UI, today I am not sure how current
UI implementes parameters that need to be passed down to different
components. That is one of the reasons why the ns_server parameters
is introduced. Another reason is we should allow users to choose this
mode by REST API.

In this commit, IMHO it should be OK to leave these parameters here
so QE is able to write some code to test it. When the UI team exposes
this option to Couchbase admin console,  we can figure out a better
way to control this feature. It would be nice that UI code can modify
the value of an ns_server parameter based on input from user.

Change-Id: Iee6428583728f0645fc3282163d892a6a6670e07
Reviewed-on: http://review.couchbase.org/24524
Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
Reviewed-by: Junyi Xie <junyi.couchbase@gmail.com>
Tested-by: Junyi Xie <junyi.couchbase@gmail.com>