Fix unsynchronized access to Leader internals.

Leader.CreateProposal doesn't enforce any kind of mutual exclusion. So
there was a possibility of two concurrent invocations: one coming from
a follower via notifications channel and executed inside Leader's
goroutine, and one coming from a client and executed inside
LeaderServer. Consequently this could cause transactions to be
commited out of order (and probably some other bad things).

This change makes CreateProposal an unexported method of Leader and
instead introduces a QueueRequest method that passes a request to
Leader via notifications channel. LeaderServer just uses this method
to forward a request to the Leader.

Change-Id: I86a9894f117a0e2242155be19c06e831ff1e228f
Reviewed-on: http://review.couchbase.org/42802
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Reviewed-by: John Liang <johliang00@gmail.com>