Resiliency: Perform write consistency just before writing on the primary shard

Before this change the write consistency change was performed on the node that receives the write request and the node that holds the primary shard. This change removes the check on the node that receives the request, since it is redundant.

Also this change moves the write consistency check on the node that holds the primary shard to a later moment after forking of the thread to perform the actual write on the primary shard. 
Not related to the change, but I think this is bad - we don't always catch this exceptions - for example where we're on the onTimeout handler of the observer. I think we should change the observer listeners to have an on failure - but that would be another change. In the meantime - can we make sure doStart doesn't throw exceptions by design but rather calls the listener.onFailure?