Return a NoOpTransactionContext when the Primary for a shard is not found

A NoOpTransactionContext is returned when a request to create a transaction
results in the primary not being found or when the request times out.

A CanCommit on the NoOpTransaction will always false. A read
will always return an empty result. The consumer will need to deal with this situation.

Change-Id: Id6f7d0688921acac718b9bb06fbf03d5e345d7ac
Signed-off-by: Moiz Raja <moraja@cisco.com>